node-rigorous
Version:
Rigorous Framework
517 lines (432 loc) • 15.9 kB
JavaScript
"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;
}();