actionsearch.js 847 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. import actionPromise from "./actionPromise";
  2. import {gql} from "./";
  3. let toRegexp = (str) => {
  4. str = str.replace(/ +/g, " ").trim();
  5. str = "/" + str.split(" ").join("|") + "/";
  6. return str;
  7. };
  8. let toQuery = (str, fields = ["name", "description"]) => {
  9. str = toRegexp(str);
  10. let arr = fields.map((s) => {
  11. //console.log(s, typeof s);
  12. return { [s]: str };
  13. });
  14. return { $or: arr };
  15. };
  16. function actionSearch(queryString) {
  17. return actionPromise('search', gql(
  18. `query goods($query: String) {
  19. GoodFind(query: $query) {
  20. name, price,
  21. images{url}, _id
  22. categories {
  23. _id
  24. createdAt
  25. name
  26. }
  27. }
  28. }`, {query: JSON.stringify([toQuery(queryString)])}))
  29. }
  30. export {toRegexp, toQuery, actionSearch};