@avonjs/avonjs
Version:
A fluent Node.js API generator.
50 lines (49 loc) • 1.85 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const Contracts_1 = require("../Contracts");
const FillsActionEvents_1 = __importDefault(require("../Mixins/FillsActionEvents"));
const CollectionRepository_1 = __importDefault(require("./CollectionRepository"));
class ActionEvent extends (0, FillsActionEvents_1.default)(CollectionRepository_1.default) {
/**
* Get key name of the item.
*/
searchableColumns() {
return [];
}
/**
* Store given model into the storage.
*/
async update(model) {
throw new Error('Update action event is not possible.');
}
/**
* Apply the where constraint on the collection item.
*/
checkAgainstWhere(item, where) {
const value = Array.isArray(where.value)
? where.value
: String(where.value);
const resourceValue = String(item.getAttribute(where.key));
switch (where.operator) {
case Contracts_1.Operator.in:
case Contracts_1.Operator.eq:
return (Array.isArray(where.value) ? where.value : [where.value]).some((value) => value === resourceValue);
case Contracts_1.Operator.lte:
return resourceValue <= value;
case Contracts_1.Operator.gte:
return resourceValue >= value;
case Contracts_1.Operator.not:
return resourceValue !== value;
case Contracts_1.Operator.lt:
return resourceValue < value;
case Contracts_1.Operator.gt:
return resourceValue > value;
default:
return true;
}
}
}
exports.default = ActionEvent;