UNPKG

node-rigorous

Version:
517 lines (432 loc) 15.9 kB
"use strict"; function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var _require = require('../../factory/RigorousError/index'), errorTypes = _require.errorTypes; module.exports = /*#__PURE__*/ function () { function CrudService(model) { _classCallCheck(this, CrudService); this.model = model; } /** * postXXX are meant to be override only contain operation that will not make * CYCLE DEPENDENCY... So Be carefull * Exemple: .remove function */ _createClass(CrudService, [{ key: "postCreateIt", value: function () { var _postCreateIt = _asyncToGenerator( /*#__PURE__*/ regeneratorRuntime.mark(function _callee() { var object, _args = arguments; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: object = _args.length > 0 && _args[0] !== undefined ? _args[0] : null; case 1: case "end": return _context.stop(); } } }, _callee); })); function postCreateIt() { return _postCreateIt.apply(this, arguments); } return postCreateIt; }() }, { key: "postDeleteIt", value: function () { var _postDeleteIt = _asyncToGenerator( /*#__PURE__*/ regeneratorRuntime.mark(function _callee2() { var resultArrayId, _args2 = arguments; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: resultArrayId = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : []; case 1: case "end": return _context2.stop(); } } }, _callee2); })); function postDeleteIt() { return _postDeleteIt.apply(this, arguments); } return postDeleteIt; }() }, { key: "postWriteIt", value: function () { var _postWriteIt = _asyncToGenerator( /*#__PURE__*/ regeneratorRuntime.mark(function _callee3() { var resultArray, _args3 = arguments; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: resultArray = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : []; case 1: case "end": return _context3.stop(); } } }, _callee3); })); function postWriteIt() { return _postWriteIt.apply(this, arguments); } return postWriteIt; }() }, { key: "addDynamicFields", value: function () { var _addDynamicFields = _asyncToGenerator( /*#__PURE__*/ regeneratorRuntime.mark(function _callee4() { var objects, _args4 = arguments; return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: objects = _args4.length > 0 && _args4[0] !== undefined ? _args4[0] : []; return _context4.abrupt("return", objects); case 2: case "end": return _context4.stop(); } } }, _callee4); })); function addDynamicFields() { return _addDynamicFields.apply(this, arguments); } return addDynamicFields; }() }, { key: "createIt", value: function () { var _createIt = _asyncToGenerator( /*#__PURE__*/ regeneratorRuntime.mark(function _callee5(attributesToBeDefined, params) { var object; return regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: _context5.prev = 0; _context5.next = 3; return this.model.crudFunction.createObject(attributesToBeDefined, params); case 3: object = _context5.sent; _context5.next = 6; return this.postCreateIt(object); case 6: _context5.next = 8; return this.postWriteIt([object]); case 8: return _context5.abrupt("return", object); case 11: _context5.prev = 11; _context5.t0 = _context5["catch"](0); throw _context5.t0; case 14: case "end": return _context5.stop(); } } }, _callee5, this, [[0, 11]]); })); function createIt(_x, _x2) { return _createIt.apply(this, arguments); } return createIt; }() }, { key: "updateIt", value: function () { var _updateIt = _asyncToGenerator( /*#__PURE__*/ regeneratorRuntime.mark(function _callee6(queryRead, jsonFieldsUpdated, params) { var result; return regeneratorRuntime.wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: _context6.prev = 0; _context6.next = 3; return this.model.crudFunction.updateObject(queryRead, jsonFieldsUpdated, params); case 3: result = _context6.sent; if (!Array.isArray(result)) { _context6.next = 12; break; } _context6.next = 7; return this.addDynamicFields(result); case 7: result = _context6.sent; _context6.next = 10; return this.postWriteIt(result); case 10: _context6.next = 17; break; case 12: _context6.next = 14; return this.addDynamicFields([result]); case 14: result = _context6.sent[0]; _context6.next = 17; return this.postWriteIt([result]); case 17: return _context6.abrupt("return", result); case 20: _context6.prev = 20; _context6.t0 = _context6["catch"](0); throw _context6.t0; case 23: case "end": return _context6.stop(); } } }, _callee6, this, [[0, 20]]); })); function updateIt(_x3, _x4, _x5) { return _updateIt.apply(this, arguments); } return updateIt; }() }, { key: "deleteIt", value: function () { var _deleteIt = _asyncToGenerator( /*#__PURE__*/ regeneratorRuntime.mark(function _callee7(queryDelete) { var resultOneOrArrayId; return regeneratorRuntime.wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: _context7.prev = 0; _context7.next = 3; return this.model.crudFunction.deleteObject(queryDelete); case 3: resultOneOrArrayId = _context7.sent; if (!Array.isArray(resultOneOrArrayId)) { _context7.next = 9; break; } _context7.next = 7; return this.postDeleteIt(resultOneOrArrayId); case 7: _context7.next = 11; break; case 9: _context7.next = 11; return this.postDeleteIt([resultOneOrArrayId]); case 11: return _context7.abrupt("return"); case 14: _context7.prev = 14; _context7.t0 = _context7["catch"](0); throw _context7.t0; case 17: case "end": return _context7.stop(); } } }, _callee7, this, [[0, 14]]); })); function deleteIt(_x6) { return _deleteIt.apply(this, arguments); } return deleteIt; }() }, { key: "readIt", value: function () { var _readIt = _asyncToGenerator( /*#__PURE__*/ regeneratorRuntime.mark(function _callee8(queryRead, params) { var result; return regeneratorRuntime.wrap(function _callee8$(_context8) { while (1) { switch (_context8.prev = _context8.next) { case 0: _context8.prev = 0; _context8.next = 3; return this.model.crudFunction.readObject(queryRead, params); case 3: result = _context8.sent; _context8.next = 6; return this.addDynamicFields([result]); case 6: result = _context8.sent[0]; return _context8.abrupt("return", result); case 10: _context8.prev = 10; _context8.t0 = _context8["catch"](0); throw _context8.t0; case 13: case "end": return _context8.stop(); } } }, _callee8, this, [[0, 10]]); })); function readIt(_x7, _x8) { return _readIt.apply(this, arguments); } return readIt; }() }, { key: "readMany", value: function () { var _readMany = _asyncToGenerator( /*#__PURE__*/ regeneratorRuntime.mark(function _callee9(queryRead, lastPaginateId, reverse, params) { var result; return regeneratorRuntime.wrap(function _callee9$(_context9) { while (1) { switch (_context9.prev = _context9.next) { case 0: _context9.prev = 0; _context9.next = 3; return this.model.crudFunction.readManyObject(queryRead, lastPaginateId, reverse, params); case 3: result = _context9.sent; _context9.next = 6; return this.addDynamicFields(result); case 6: result = _context9.sent; return _context9.abrupt("return", result); case 10: _context9.prev = 10; _context9.t0 = _context9["catch"](0); throw _context9.t0; case 13: case "end": return _context9.stop(); } } }, _callee9, this, [[0, 10]]); })); function readMany(_x9, _x10, _x11, _x12) { return _readMany.apply(this, arguments); } return readMany; }() }, { key: "readOrCreateIt", value: function () { var _readOrCreateIt = _asyncToGenerator( /*#__PURE__*/ regeneratorRuntime.mark(function _callee10(queryRead, attributesToBeDefinedIfCreation, params) { var object; return regeneratorRuntime.wrap(function _callee10$(_context10) { while (1) { switch (_context10.prev = _context10.next) { case 0: _context10.prev = 0; _context10.next = 3; return this.readIt(queryRead, params); case 3: object = _context10.sent; if (object) { _context10.next = 8; break; } _context10.next = 7; return this.createIt(attributesToBeDefinedIfCreation, params); case 7: object = _context10.sent; case 8: return _context10.abrupt("return", object); case 11: _context10.prev = 11; _context10.t0 = _context10["catch"](0); throw _context10.t0; case 14: case "end": return _context10.stop(); } } }, _callee10, this, [[0, 11]]); })); function readOrCreateIt(_x13, _x14, _x15) { return _readOrCreateIt.apply(this, arguments); } return readOrCreateIt; }() // We do not do upsert because we want to keep the logic process behing updateObject && createObject }, { key: "updateOrCreateIt", value: function () { var _updateOrCreateIt = _asyncToGenerator( /*#__PURE__*/ regeneratorRuntime.mark(function _callee11(queryRead, jsonFieldsUpdated, attributesToBeDefinedIfCreation, params) { var object; return regeneratorRuntime.wrap(function _callee11$(_context11) { while (1) { switch (_context11.prev = _context11.next) { case 0: object = null; _context11.prev = 1; _context11.prev = 2; _context11.next = 5; return this.updateIt(queryRead, jsonFieldsUpdated, params); case 5: object = _context11.sent; _context11.next = 17; break; case 8: _context11.prev = 8; _context11.t0 = _context11["catch"](2); if (!(_context11.t0.response && _context11.t0.response === errorTypes.RESPONSE_ERROR_DATA_NOT_FOUND)) { _context11.next = 16; break; } _context11.next = 13; return this.createIt(attributesToBeDefinedIfCreation, params); case 13: object = _context11.sent; _context11.next = 17; break; case 16: throw _context11.t0; case 17: return _context11.abrupt("return", object); case 20: _context11.prev = 20; _context11.t1 = _context11["catch"](1); throw _context11.t1; case 23: case "end": return _context11.stop(); } } }, _callee11, this, [[1, 20], [2, 8]]); })); function updateOrCreateIt(_x16, _x17, _x18, _x19) { return _updateOrCreateIt.apply(this, arguments); } return updateOrCreateIt; }() }]); return CrudService; }();