UNPKG

@avonjs/avonjs

Version:

A fluent Node.js API generator.

50 lines (49 loc) 1.85 kB
"use strict"; 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;