UNPKG

@calf/common

Version:
1,130 lines (1,129 loc) 43.5 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var __spreadArrays = (this && this.__spreadArrays) || function () { for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; return r; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.EntityService = void 0; // Classes var validation_result_class_1 = require("../classes/validation-result.class"); /** * Entity service */ var EntityService = /** @class */ (function () { /** * Constructor * @param dao */ function EntityService(dao) { this.dao = dao; } /** * Save entity * @param entity * @param args */ EntityService.prototype.save = function (entity) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } return __awaiter(this, void 0, void 0, function () { var validation, validation_1; return __generator(this, function (_a) { switch (_a.label) { case 0: validation = new validation_result_class_1.ValidationResult(entity); _a.label = 1; case 1: _a.trys.push([1, 4, , 5]); // Call pre save return [4 /*yield*/, this.preSave.apply(this, __spreadArrays([validation], args))]; case 2: // Call pre save _a.sent(); // Check validation if (!validation.isValid) { // Return validation return [2 /*return*/, validation]; } // Call peri save return [4 /*yield*/, this.periSave.apply(this, __spreadArrays([validation], args))]; case 3: // Call peri save _a.sent(); // Check validation if (!validation.isValid) { // Return validation return [2 /*return*/, validation]; } // Call post save return [2 /*return*/, this.postSave.apply(this, __spreadArrays([validation], args))]; case 4: validation_1 = _a.sent(); // Return validation return [2 /*return*/, validation_1]; case 5: return [2 /*return*/]; } }); }); }; /** * Pre save hook * @param validation * @param args */ EntityService.prototype.preSave = function (validation) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } return Promise.resolve(validation); }; /** * Peri save hook * @param validation * @param args */ EntityService.prototype.periSave = function (validation) { var _this = this; var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } // Create new promise return new Promise(function (resolve, reject) { var _a; // Save entity (_a = _this.dao).save.apply(_a, __spreadArrays([validation.data], args)).then(function (value) { // Assign value to validation validation.data = value; // Resolve return resolve(validation); }) .catch(function (error) { // Handle save error _this.handleSaveError(validation, error) .then(function (validation) { return resolve(validation); }) .catch(function (validation) { return reject(validation); }); }); }); }; /** * Post save hook * @param validation * @param args */ EntityService.prototype.postSave = function (validation) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } return Promise.resolve(validation); }; /** * Count entity * @param query * @param args */ EntityService.prototype.count = function (query) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } return __awaiter(this, void 0, void 0, function () { var validation, validation_2; return __generator(this, function (_a) { switch (_a.label) { case 0: validation = new validation_result_class_1.ValidationResult(0); _a.label = 1; case 1: _a.trys.push([1, 4, , 5]); // Call pre count return [4 /*yield*/, this.preCount.apply(this, __spreadArrays([validation, query], args))]; case 2: // Call pre count _a.sent(); // Check validation if (!validation.isValid) { // Return validation return [2 /*return*/, validation]; } // Call peri count return [4 /*yield*/, this.periCount.apply(this, __spreadArrays([validation, query], args))]; case 3: // Call peri count _a.sent(); // Check validation if (!validation.isValid) { // Return validation return [2 /*return*/, validation]; } // Call post count return [2 /*return*/, this.postCount.apply(this, __spreadArrays([validation, query], args))]; case 4: validation_2 = _a.sent(); // Return validation return [2 /*return*/, validation_2]; case 5: return [2 /*return*/]; } }); }); }; /** * Pre count hook * @param validation * @param query * @param args */ EntityService.prototype.preCount = function (validation, query) { var args = []; for (var _i = 2; _i < arguments.length; _i++) { args[_i - 2] = arguments[_i]; } return Promise.resolve(validation); }; /** * Peri count hook * @param validation * @param args */ EntityService.prototype.periCount = function (validation, query) { var _this = this; var args = []; for (var _i = 2; _i < arguments.length; _i++) { args[_i - 2] = arguments[_i]; } // Create new promise return new Promise(function (resolve, reject) { var _a; // Save entity (_a = _this.dao).count.apply(_a, __spreadArrays([query], args)).then(function (value) { // Assign value to validation validation.data = value; // Resolve return resolve(validation); }) .catch(function (error) { // Handle count error _this.handleCountError(validation, error) .then(function (validation) { return resolve(validation); }) .catch(function (validation) { return reject(validation); }); }); }); }; /** * Post count hook * @param validation * @param query * @param args */ EntityService.prototype.postCount = function (validation, query) { var args = []; for (var _i = 2; _i < arguments.length; _i++) { args[_i - 2] = arguments[_i]; } return Promise.resolve(validation); }; /** * Get entity * @param entity * @param query * @param args */ EntityService.prototype.get = function (entity, query) { var args = []; for (var _i = 2; _i < arguments.length; _i++) { args[_i - 2] = arguments[_i]; } return __awaiter(this, void 0, void 0, function () { var validation, validation_3; return __generator(this, function (_a) { switch (_a.label) { case 0: validation = new validation_result_class_1.ValidationResult(entity); _a.label = 1; case 1: _a.trys.push([1, 4, , 5]); // Call pre get return [4 /*yield*/, this.preGet.apply(this, __spreadArrays([validation, query], args))]; case 2: // Call pre get _a.sent(); // Check validation if (!validation.isValid) { // Return validation return [2 /*return*/, validation]; } // Call peri get return [4 /*yield*/, this.periGet.apply(this, __spreadArrays([validation, query], args))]; case 3: // Call peri get _a.sent(); // Check validation if (!validation.isValid) { // Return validation return [2 /*return*/, validation]; } // Call post get return [2 /*return*/, this.postGet.apply(this, __spreadArrays([validation, query], args))]; case 4: validation_3 = _a.sent(); // Return validation return [2 /*return*/, validation_3]; case 5: return [2 /*return*/]; } }); }); }; /** * Pre get hook * @param validation * @param query * @param args */ EntityService.prototype.preGet = function (validation, query) { var args = []; for (var _i = 2; _i < arguments.length; _i++) { args[_i - 2] = arguments[_i]; } return Promise.resolve(validation); }; /** * Peri get hook * @param validation * @param query * @param args * @returns */ EntityService.prototype.periGet = function (validation, query) { var _this = this; var args = []; for (var _i = 2; _i < arguments.length; _i++) { args[_i - 2] = arguments[_i]; } // Create new promise return new Promise(function (resolve, reject) { var _a; // Save entity (_a = _this.dao).get.apply(_a, __spreadArrays([validation.data, query], args)).then(function (value) { // Assign value to validation validation.data = value; // Resolve return resolve(validation); }) .catch(function (error) { // Handle get error _this.handleGetError(validation, error) .then(function (validation) { return resolve(validation); }) .catch(function (validation) { return reject(validation); }); }); }); }; /** * Post get hook * @param validation * @param args */ EntityService.prototype.postGet = function (validation) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } return Promise.resolve(validation); }; /** * Get single entity by query * @param query * @param args */ EntityService.prototype.single = function (query) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } return __awaiter(this, void 0, void 0, function () { var validation, validation_4; return __generator(this, function (_a) { switch (_a.label) { case 0: validation = new validation_result_class_1.ValidationResult(); _a.label = 1; case 1: _a.trys.push([1, 4, , 5]); // Call pre single return [4 /*yield*/, this.preSingle.apply(this, __spreadArrays([validation, query], args))]; case 2: // Call pre single _a.sent(); // Check validation if (!validation.isValid) { // Return validation return [2 /*return*/, validation]; } // Call peri single return [4 /*yield*/, this.periSingle.apply(this, __spreadArrays([validation, query], args))]; case 3: // Call peri single _a.sent(); // Check validation if (!validation.isValid) { // Return validation return [2 /*return*/, validation]; } // Call post single return [2 /*return*/, this.postSingle.apply(this, __spreadArrays([validation, query], args))]; case 4: validation_4 = _a.sent(); // Return validation return [2 /*return*/, validation_4]; case 5: return [2 /*return*/]; } }); }); }; /** * Pre single hook * @param validation * @param query * @param args */ EntityService.prototype.preSingle = function (validation, query) { var args = []; for (var _i = 2; _i < arguments.length; _i++) { args[_i - 2] = arguments[_i]; } return Promise.resolve(validation); }; /** * Peri single hook * @param validation * @param query * @param args */ EntityService.prototype.periSingle = function (validation, query) { var _this = this; var args = []; for (var _i = 2; _i < arguments.length; _i++) { args[_i - 2] = arguments[_i]; } // Create new promise return new Promise(function (resolve, reject) { var _a; // First get list (_a = _this.dao).getList.apply(_a, __spreadArrays([__assign(__assign({}, query), { limit: 1 })], args)).then(function (items) { // Check if any items were found if (!items || !items.length) { // Do nothing return resolve(validation); } // Assign item validation.data = items.pop(); // Resolve return resolve(validation); }) .catch(function (error) { // Handle single error _this.handleSingleError(validation, error) .then(function (validation) { return resolve(validation); }) .catch(function (validation) { return reject(validation); }); }); }); }; /** * Post single hook * @param validation * @param query * @param args */ EntityService.prototype.postSingle = function (validation, query) { var args = []; for (var _i = 2; _i < arguments.length; _i++) { args[_i - 2] = arguments[_i]; } return Promise.resolve(validation); }; /** * Get list of entities * @param query * @param args */ EntityService.prototype.getList = function (query) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } return __awaiter(this, void 0, void 0, function () { var validation, validation_5; return __generator(this, function (_a) { switch (_a.label) { case 0: validation = new validation_result_class_1.ValidationResult({ items: [], total: 0, pageSize: query.limit, page: Math.round((query.skip) || 0 / (query.limit || 1)) + 1 }); _a.label = 1; case 1: _a.trys.push([1, 4, , 5]); // Call pre get list return [4 /*yield*/, this.preGetList.apply(this, __spreadArrays([validation, query], args))]; case 2: // Call pre get list _a.sent(); // Check validation if (!validation.isValid) { // Return validation return [2 /*return*/, validation]; } // Call peri get list return [4 /*yield*/, this.periGetList.apply(this, __spreadArrays([validation, query], args))]; case 3: // Call peri get list _a.sent(); // Check validation if (!validation.isValid) { // Return validation return [2 /*return*/, validation]; } // Call post get list return [2 /*return*/, this.postGetList.apply(this, __spreadArrays([validation, query], args))]; case 4: validation_5 = _a.sent(); // Return validation return [2 /*return*/, validation_5]; case 5: return [2 /*return*/]; } }); }); }; /** * Pre get list hook * @param validation * @param query * @param args */ EntityService.prototype.preGetList = function (validation, query) { var args = []; for (var _i = 2; _i < arguments.length; _i++) { args[_i - 2] = arguments[_i]; } return Promise.resolve(validation); }; /** * Peri get list hook * @param validation * @param query * @param args */ EntityService.prototype.periGetList = function (validation, query) { var _this = this; var args = []; for (var _i = 2; _i < arguments.length; _i++) { args[_i - 2] = arguments[_i]; } // Create new promise return new Promise(function (resolve, reject) { var _a; // First get list (_a = _this.dao).getList.apply(_a, __spreadArrays([query], args)).then(function (items) { // Assign items validation.data.items = items; // Now get total count return _this.dao.count({ filter: query.filter }); }) .then(function (total) { // Assign total validation.data.total = total; // Resolve return resolve(validation); }) .catch(function (error) { // Handle get error _this.handleGetListError(validation, error) .then(function (validation) { return resolve(validation); }) .catch(function (validation) { return reject(validation); }); }); }); }; /** * Post get list * @param validation * @param query * @param args */ EntityService.prototype.postGetList = function (validation, query) { var args = []; for (var _i = 2; _i < arguments.length; _i++) { args[_i - 2] = arguments[_i]; } return Promise.resolve(validation); }; /** * Remove * @param entity * @param args */ EntityService.prototype.remove = function (entity) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } return __awaiter(this, void 0, void 0, function () { var validation, validation_6; return __generator(this, function (_a) { switch (_a.label) { case 0: validation = new validation_result_class_1.ValidationResult(entity); _a.label = 1; case 1: _a.trys.push([1, 4, , 5]); // Call pre remove return [4 /*yield*/, this.preRemove.apply(this, __spreadArrays([validation], args))]; case 2: // Call pre remove _a.sent(); // Check validation if (!validation.isValid) { // Return validation return [2 /*return*/, validation]; } // Call peri remove return [4 /*yield*/, this.periRemove.apply(this, __spreadArrays([validation], args))]; case 3: // Call peri remove _a.sent(); // Check validation if (!validation.isValid) { // Return validation return [2 /*return*/, validation]; } // Call post remove return [2 /*return*/, this.postRemove.apply(this, __spreadArrays([validation], args))]; case 4: validation_6 = _a.sent(); // Return validation return [2 /*return*/, validation_6]; case 5: return [2 /*return*/]; } }); }); }; /** * Remove list * @param query * @param args */ EntityService.prototype.removeList = function (query) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } return __awaiter(this, void 0, void 0, function () { var validation, validation_7; return __generator(this, function (_a) { switch (_a.label) { case 0: validation = new validation_result_class_1.ValidationResult(); _a.label = 1; case 1: _a.trys.push([1, 4, , 5]); // Call pre remove return [4 /*yield*/, this.preRemoveList.apply(this, __spreadArrays([validation, query], args))]; case 2: // Call pre remove _a.sent(); // Check validation if (!validation.isValid) { // Return validation return [2 /*return*/, validation]; } // Call peri remove return [4 /*yield*/, this.periRemoveList.apply(this, __spreadArrays([validation, query], args))]; case 3: // Call peri remove _a.sent(); // Check validation if (!validation.isValid) { // Return validation return [2 /*return*/, validation]; } // Call post remove return [2 /*return*/, this.postRemoveList.apply(this, __spreadArrays([validation, query], args))]; case 4: validation_7 = _a.sent(); // Return validation return [2 /*return*/, validation_7]; case 5: return [2 /*return*/]; } }); }); }; /** * Pre remove hook * @param validation * @param query * @param args */ EntityService.prototype.preRemove = function (validation) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) { return [2 /*return*/, validation]; }); }); }; /** * Peri remove hook * @param validation * @param query * @param args */ EntityService.prototype.periRemove = function (validation) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } return __awaiter(this, void 0, void 0, function () { var _a, error_1; var _b; return __generator(this, function (_c) { switch (_c.label) { case 0: _c.trys.push([0, 2, , 3]); // Remove entity _a = validation; return [4 /*yield*/, (_b = this.dao).remove.apply(_b, __spreadArrays([validation.data], args))]; case 1: // Remove entity _a.data = _c.sent(); // Return validation return [2 /*return*/, validation]; case 2: error_1 = _c.sent(); // Handle error return [2 /*return*/, this.handleRemoveError(validation, error_1)]; case 3: return [2 /*return*/]; } }); }); }; /** * Post remove hook * @param validation * @param args */ EntityService.prototype.postRemove = function (validation) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) { return [2 /*return*/, validation]; }); }); }; /** * Pre remove list hook * @param validation * @param query * @param args */ EntityService.prototype.preRemoveList = function (validation, query) { var args = []; for (var _i = 2; _i < arguments.length; _i++) { args[_i - 2] = arguments[_i]; } return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) { return [2 /*return*/, validation]; }); }); }; /** * Peri remove list hook * @param validation * @param query * @param args */ EntityService.prototype.periRemoveList = function (validation, query) { var args = []; for (var _i = 2; _i < arguments.length; _i++) { args[_i - 2] = arguments[_i]; } return __awaiter(this, void 0, void 0, function () { var _a, error_2; var _b; return __generator(this, function (_c) { switch (_c.label) { case 0: _c.trys.push([0, 2, , 3]); // Remove list _a = validation; return [4 /*yield*/, (_b = this.dao).removeList.apply(_b, __spreadArrays([query], args))]; case 1: // Remove list _a.data = _c.sent(); // Return validation return [2 /*return*/, validation]; case 2: error_2 = _c.sent(); // Handle error return [2 /*return*/, this.handleRemoveListError(validation, error_2)]; case 3: return [2 /*return*/]; } }); }); }; /** * Post remove list hook * @param validation * @param query * @param args */ EntityService.prototype.postRemoveList = function (validation, query) { var args = []; for (var _i = 2; _i < arguments.length; _i++) { args[_i - 2] = arguments[_i]; } return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) { return [2 /*return*/, validation]; }); }); }; /** * Change state * @param entity * @param args */ EntityService.prototype.changeState = function (entity) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } return __awaiter(this, void 0, void 0, function () { var validation, validation_8; return __generator(this, function (_a) { switch (_a.label) { case 0: validation = new validation_result_class_1.ValidationResult(entity); _a.label = 1; case 1: _a.trys.push([1, 4, , 5]); // Call pre change state return [4 /*yield*/, this.preChangeState.apply(this, __spreadArrays([validation], args))]; case 2: // Call pre change state _a.sent(); // Check validation if (!validation.isValid) { // Return validation return [2 /*return*/, validation]; } // Call peri change state return [4 /*yield*/, this.periChangeState.apply(this, __spreadArrays([validation], args))]; case 3: // Call peri change state _a.sent(); // Check validation if (!validation.isValid) { // Return validation return [2 /*return*/, validation]; } // Call post change state return [2 /*return*/, this.postChangeState.apply(this, __spreadArrays([validation], args))]; case 4: validation_8 = _a.sent(); // Return validation return [2 /*return*/, validation_8]; case 5: return [2 /*return*/]; } }); }); }; /** * Pre change state hook * @param validation * @param args */ EntityService.prototype.preChangeState = function (validation) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } return Promise.resolve(validation); }; /** * Peri change state * @param validation * @param args */ EntityService.prototype.periChangeState = function (validation) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } throw new Error("[@calf:entity.service] Change state not implemented!"); }; /** * Post change state * @param validation * @param args */ EntityService.prototype.postChangeState = function (validation) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } return Promise.resolve(validation); }; /** * Update * @param query * @param payload * @param args */ EntityService.prototype.update = function (query, payload) { var args = []; for (var _i = 2; _i < arguments.length; _i++) { args[_i - 2] = arguments[_i]; } return __awaiter(this, void 0, void 0, function () { var validation, validation_9; return __generator(this, function (_a) { switch (_a.label) { case 0: validation = new validation_result_class_1.ValidationResult(); _a.label = 1; case 1: _a.trys.push([1, 4, , 5]); // Call pre update return [4 /*yield*/, this.preUpdate.apply(this, __spreadArrays([validation, query, payload], args))]; case 2: // Call pre update _a.sent(); // Check validation if (!validation.isValid) { // Return validation return [2 /*return*/, validation]; } // Call peri update return [4 /*yield*/, this.periUpdate.apply(this, __spreadArrays([validation, query, payload], args))]; case 3: // Call peri update _a.sent(); // Check validation if (!validation.isValid) { // Return validation return [2 /*return*/, validation]; } // Call post update return [2 /*return*/, this.postUpdate.apply(this, __spreadArrays([validation, query, payload], args))]; case 4: validation_9 = _a.sent(); // Return validation return [2 /*return*/, validation_9]; case 5: return [2 /*return*/]; } }); }); }; /** * Pre update hook * @param validation * @param query * @param payload * @param args */ EntityService.prototype.preUpdate = function (validation, query, payload) { var args = []; for (var _i = 3; _i < arguments.length; _i++) { args[_i - 3] = arguments[_i]; } return Promise.resolve(validation); }; /** * Peri update hook * @param validation * @param query * @param payload * @param args */ EntityService.prototype.periUpdate = function (validation, query, payload) { var _this = this; var args = []; for (var _i = 3; _i < arguments.length; _i++) { args[_i - 3] = arguments[_i]; } // Create new promise return new Promise(function (resolve, reject) { var _a; // Update (_a = _this.dao).update.apply(_a, __spreadArrays([query, payload], args)).then(function (result) { // Assign Data validation.data = result; // Resolve return resolve(validation); }) .catch(function (error) { // Handle error _this.handleUpdateError(validation, error) .then(function (validation) { return resolve(validation); }) .catch(function (validation) { return reject(validation); }); }); }); }; /** * Post update hook * @param validation * @param query * @param payload * @param args */ EntityService.prototype.postUpdate = function (validation, query, payload) { var args = []; for (var _i = 3; _i < arguments.length; _i++) { args[_i - 3] = arguments[_i]; } return Promise.resolve(validation); }; /** * Handle update error * @param validation * @param error */ EntityService.prototype.handleUpdateError = function (validation, error) { return this.handleDaoError(validation, error); }; /** * Handle change state error * @param validation * @param error */ EntityService.prototype.handleChangeStateError = function (validation, error) { return this.handleDaoError(validation, error); }; /** * Handle save error * @param error */ EntityService.prototype.handleSaveError = function (validation, error) { return this.handleDaoError(validation, error); }; /** * Handle get error * @param validation * @param error */ EntityService.prototype.handleGetError = function (validation, error) { return this.handleDaoError(validation, error); }; /** * Handle single error * @param validation * @param error */ EntityService.prototype.handleSingleError = function (validation, error) { return this.handleDaoError(validation, error); }; /** * Handle count error * @param validation * @param error */ EntityService.prototype.handleCountError = function (validation, error) { return this.handleDaoError(validation, error); }; /** * Handle get list error * @param validation * @param error */ EntityService.prototype.handleGetListError = function (validation, error) { return this.handleDaoError(validation, error); }; /** * Handle remove list error * @param validation * @param error */ EntityService.prototype.handleRemoveListError = function (validation, error) { return this.handleDaoError(validation, error); }; /** * Handle remove error * @param validation * @param error */ EntityService.prototype.handleRemoveError = function (validation, error) { return this.handleDaoError(validation, error); }; /** * Handle dao error * @param validation * @param error */ EntityService.prototype.handleDaoError = function (validation, error) { // Reject return Promise.reject(validation); }; return EntityService; }()); exports.EntityService = EntityService;