TextMatchExpressionParser.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. var TextMatchExpression = require("./TextMatchExpression"),
  2. ErrorCodes = require("../errors").ErrorCodes;
  3. /**
  4. * Expression parser's text callback function.
  5. *
  6. * @param queryObj
  7. * @returns {*}
  8. * @private
  9. */
  10. var _expressionParserTextCallbackReal = function _expressionParserTextCallbackReal(queryObj) {
  11. if (queryObj.$search._type !== "string") {
  12. return {code: ErrorCodes.BadValue, description: "$search needs a String"};
  13. }
  14. var language = "",
  15. languageElt = queryObj.$language;
  16. if (languageElt !== null) {
  17. if (typeof languageElt !== "string")
  18. return {code:ErrorCodes.BadValue, description:"$language needs a String"};
  19. language = languageElt;
  20. //TODO: finish implementing one day, just trying to fix jshint errors right now
  21. }
  22. var query = queryObj.$search;
  23. if (Object.keys(queryObj).length !== (languageElt === null ? 1 : 2)) {
  24. return {code:ErrorCodes.BadValue, description:"extra fields in $text"};
  25. }
  26. var e = new TextMatchExpression(),
  27. s = e.init(query, language);
  28. if (s.code !== ErrorCodes.OK) {
  29. return s;
  30. }
  31. return e;
  32. };
  33. module.exports = {
  34. expressionParserTextCallbackReal: _expressionParserTextCallbackReal
  35. };