nextpay-querystring
Version:
Thư viện QueryString của NextPay - Chuyển đổi QueryString thành điều kiện select cho MongoDB và MySQL với kiểm soát bảo mật
49 lines • 2.06 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.FmFilter = void 0;
const exceptions_1 = __importDefault(require("../exceptions"));
const literalDataTypes_1 = __importDefault(require("../models/literalDataTypes"));
const nodes_1 = require("../models/nodes");
const validations_1 = __importDefault(require("../models/validations"));
const exceptions_2 = require("../utils/exceptions");
const stringToData_1 = __importDefault(require("../utils/stringToData"));
class FmFilter extends nodes_1.Filter {
constructor(variables, word) {
super();
this.supportedTypes = [literalDataTypes_1.default.STRING];
this.variables = variables;
this.word = word;
}
validate(fdCon) {
try {
// eslint-disable-next-line no-restricted-syntax
for (const v of this.variables) {
const type = fdCon.getFieldDescription(v).dataType;
if (!this.supportedTypes.includes(type)) {
throw (0, exceptions_2.dataTypeNotSupportedException)(type);
}
fdCon.incOccurrence(v);
}
// FmFilter only works with STRING
(0, stringToData_1.default)(literalDataTypes_1.default.STRING)(this.word);
return new validations_1.default(true, undefined);
}
catch (err) {
const exception = new exceptions_1.default(`FmFilter: ${err.message}`);
return new validations_1.default(false, exception);
}
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
toMongoCriteria(_fdCon) {
throw new Error('Method not implemented.');
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
toMySqlCriteria(_fdCon) {
throw new Error('Method not implemented.');
}
}
exports.FmFilter = FmFilter;
//# sourceMappingURL=specialFilters.js.map
;