UNPKG

@lskjs/server

Version:

LSK server.

163 lines (142 loc) 11.8 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _getClassInfo = _interopRequireDefault(require("./getClassInfo")); function uppercaseFirstLetter(string) { return string.charAt(0).toUpperCase() + string.slice(1); } function lowercaseFirstLetter(string) { return string.charAt(0).toLowerCase() + string.slice(1); } var _default = function _default(ctx) { return function createResourse(Model) { var info = (0, _getClassInfo["default"])(Model); var actionNames = info.staticMethods.filter(function (a) { return a.substr(0, 'action'.length) === 'action'; }); var prepare = function prepare(rawModel) { if (!rawModel) return rawModel; if (!Model.prepare) return rawModel; return Model.prepare(rawModel); }; var actions = { list: function list(req) { return (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() { var rawModel; return _regenerator["default"].wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return Model.findByParams(req.data); case 2: rawModel = _context.sent; return _context.abrupt("return", prepare(rawModel)); case 4: case "end": return _context.stop(); } } }, _callee); }))(); }, create: function create(req) { return (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() { var rawModel; return _regenerator["default"].wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.next = 2; return Model.create(req.body); case 2: rawModel = _context2.sent; return _context2.abrupt("return", prepare(rawModel)); case 4: case "end": return _context2.stop(); } } }, _callee2); }))(); }, get: function get(req) { return (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() { var id, rawModel; return _regenerator["default"].wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: id = req.query._id; _context3.next = 3; return Model.findById(id).then(ctx.helpers.checkNotFound); case 3: rawModel = _context3.sent; return _context3.abrupt("return", prepare(rawModel)); case 5: case "end": return _context3.stop(); } } }, _callee3); }))(); }, update: function update(req) { return (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() { var id, rawModel; return _regenerator["default"].wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: id = req.query._id; _context4.next = 3; return Model.findByIdAndUpdate(id, req.body, { "new": true }).then(ctx.helpers.checkNotFound); case 3: rawModel = _context4.sent; return _context4.abrupt("return", prepare(rawModel)); case 5: case "end": return _context4.stop(); } } }, _callee4); }))(); }, remove: function remove(req) { return (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() { var id, rawModel; return _regenerator["default"].wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: id = req.query._id; _context5.next = 3; return Model.findByIdAndRemove(id).then(ctx.helpers.checkNotFound); case 3: rawModel = _context5.sent; return _context5.abrupt("return", prepare(rawModel)); case 5: case "end": return _context5.stop(); } } }, _callee5); }))(); } }; actionNames.forEach(function (actionName) { actions[lowercaseFirstLetter(actionName.substr('action'.length))] = Model[actionName]; }); return actions; }; }; exports["default"] = _default; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL2NyZWF0ZVJlc291cnNlLmpzIl0sIm5hbWVzIjpbInVwcGVyY2FzZUZpcnN0TGV0dGVyIiwic3RyaW5nIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzbGljZSIsImxvd2VyY2FzZUZpcnN0TGV0dGVyIiwidG9Mb3dlckNhc2UiLCJjdHgiLCJjcmVhdGVSZXNvdXJzZSIsIk1vZGVsIiwiaW5mbyIsImFjdGlvbk5hbWVzIiwic3RhdGljTWV0aG9kcyIsImZpbHRlciIsImEiLCJzdWJzdHIiLCJsZW5ndGgiLCJwcmVwYXJlIiwicmF3TW9kZWwiLCJhY3Rpb25zIiwibGlzdCIsInJlcSIsImZpbmRCeVBhcmFtcyIsImRhdGEiLCJjcmVhdGUiLCJib2R5IiwiZ2V0IiwiaWQiLCJxdWVyeSIsIl9pZCIsImZpbmRCeUlkIiwidGhlbiIsImhlbHBlcnMiLCJjaGVja05vdEZvdW5kIiwidXBkYXRlIiwiZmluZEJ5SWRBbmRVcGRhdGUiLCJyZW1vdmUiLCJmaW5kQnlJZEFuZFJlbW92ZSIsImZvckVhY2giLCJhY3Rpb25OYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBRUEsU0FBU0Esb0JBQVQsQ0FBOEJDLE1BQTlCLEVBQXNDO0FBQ3BDLFNBQU9BLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjLENBQWQsRUFBaUJDLFdBQWpCLEtBQWlDRixNQUFNLENBQUNHLEtBQVAsQ0FBYSxDQUFiLENBQXhDO0FBQ0Q7O0FBQ0QsU0FBU0Msb0JBQVQsQ0FBOEJKLE1BQTlCLEVBQXNDO0FBQ3BDLFNBQU9BLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjLENBQWQsRUFBaUJJLFdBQWpCLEtBQWlDTCxNQUFNLENBQUNHLEtBQVAsQ0FBYSxDQUFiLENBQXhDO0FBQ0Q7O2VBQ2Msa0JBQUNHLEdBQUQsRUFBUztBQUN0QixTQUFPLFNBQVNDLGNBQVQsQ0FBd0JDLEtBQXhCLEVBQStCO0FBQ3BDLFFBQU1DLElBQUksR0FBRyw4QkFBYUQsS0FBYixDQUFi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SEU7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJakI7QUF6QmEsS0FBaEI7QUE0QkFQLElBQUFBLFdBQVcsQ0FBQzJCLE9BQVosQ0FBb0IsVUFBQ0MsVUFBRCxFQUFnQjtBQUNsQ3BCLE1BQUFBLE9BQU8sQ0FBQ2Qsb0JBQW9CLENBQUNrQyxVQUFVLENBQUN4QixNQUFYLENBQWtCLFNBQVNDLE1BQTNCLENBQUQsQ0FBckIsQ0FBUCxHQUFvRVAsS0FBSyxDQUFDOEIsVUFBRCxDQUF6RTtBQUNELEtBRkQ7QUFJQSxXQUFPcEIsT0FBUDtBQUNELEdBM0NEO0FBNENELEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0Q2xhc3NJbmZvIGZyb20gJy4vZ2V0Q2xhc3NJbmZvJztcblxuZnVuY3Rpb24gdXBwZXJjYXNlRmlyc3RMZXR0ZXIoc3RyaW5nKSB7XG4gIHJldHVybiBzdHJpbmcuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBzdHJpbmcuc2xpY2UoMSk7XG59XG5mdW5jdGlvbiBsb3dlcmNhc2VGaXJzdExldHRlcihzdHJpbmcpIHtcbiAgcmV0dXJuIHN0cmluZy5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKSArIHN0cmluZy5zbGljZSgxKTtcbn1cbmV4cG9ydCBkZWZhdWx0IChjdHgpID0+IHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGNyZWF0ZVJlc291cnNlKE1vZGVsKSB7XG4gICAgY29uc3QgaW5mbyA9IGdldENsYXNzSW5mbyhNb2RlbCk7XG4gICAgY29uc3QgYWN0aW9uTmFtZXMgPSBpbmZvLnN0YXRpY01ldGhvZHNcbiAgICAgIC5maWx0ZXIoYSA9PiBhLnN1YnN0cigwLCAnYWN0aW9uJy5sZW5ndGgpID09PSAnYWN0aW9uJyk7XG5cbiAgICBjb25zdCBwcmVwYXJlID0gKHJhd01vZGVsKSA9PiB7XG4gICAgICBpZiAoIXJhd01vZGVsKSByZXR1cm4gcmF3TW9kZWw7XG4gICAgICBpZiAoIU1vZGVsLnByZXBhcmUpIHJldHVybiByYXdNb2RlbDtcbiAgICAgIHJldHVybiBNb2RlbC5wcmVwYXJlKHJhd01vZGVsKTtcbiAgICB9O1xuICAgIGNvbnN0IGFjdGlvbnMgPSB7XG4gICAgICBhc3luYyBsaXN0KHJlcSkge1xuICAgICAgICBjb25zdCByYXdNb2RlbCA9IGF3YWl0IE1vZGVsLmZpbmRCeVBhcmFtcyhyZXEuZGF0YSk7XG4gICAgICAgIHJldHVybiBwcmVwYXJlKHJhd01vZGVsKTtcbiAgICAgIH0sXG5cbiAgICAgIGFzeW5jIGNyZWF0ZShyZXEpIHtcbiAgICAgICAgY29uc3QgcmF3TW9kZWwgPSBhd2FpdCBNb2RlbC5jcmVhdGUocmVxLmJvZHkpO1xuICAgICAgICByZXR1cm4gcHJlcGFyZShyYXdNb2RlbCk7XG4gICAgICB9LFxuXG4gICAgICBhc3luYyBnZXQocmVxKSB7XG4gICAgICAgIGNvbnN0IGlkID0gcmVxLnF1ZXJ5Ll9pZDtcbiAgICAgICAgY29uc3QgcmF3TW9kZWwgPSBhd2FpdCBNb2RlbC5maW5kQnlJZChpZCkudGhlbihjdHguaGVscGVycy5jaGVja05vdEZvdW5kKTtcbiAgICAgICAgcmV0dXJuIHByZXBhcmUocmF3TW9kZWwpO1xuICAgICAgfSxcbiAgICAgIGFzeW5jIHVwZGF0ZShyZXEpIHtcbiAgICAgICAgY29uc3QgaWQgPSByZXEucXVlcnkuX2lkO1xuICAgICAgICBjb25zdCByYXdNb2RlbCA9IGF3YWl0IE1vZGVsLmZpbmRCeUlkQW5kVXBkYXRlKGlkLCByZXEuYm9keSwgeyBuZXc6IHRydWUgfSkudGhlbihjdHguaGVscGVycy5jaGVja05vdEZvdW5kKTtcbiAgICAgICAgcmV0dXJuIHByZXBhcmUocmF3TW9kZWwpO1xuICAgICAgfSxcbiAgICAgIGFzeW5jIHJlbW92ZShyZXEpIHtcbiAgICAgICAgY29uc3QgaWQgPSByZXEucXVlcnkuX2lkO1xuICAgICAgICBjb25zdCByYXdNb2RlbCA9IGF3YWl0IE1vZGVsLmZpbmRCeUlkQW5kUmVtb3ZlKGlkKS50aGVuKGN0eC5oZWxwZXJzLmNoZWNrTm90Rm91bmQpO1xuICAgICAgICByZXR1cm4gcHJlcGFyZShyYXdNb2RlbCk7XG4gICAgICB9LFxuICAgIH07XG5cbiAgICBhY3Rpb25OYW1lcy5mb3JFYWNoKChhY3Rpb25OYW1lKSA9PiB7XG4gICAgICBhY3Rpb25zW2xvd2VyY2FzZUZpcnN0TGV0dGVyKGFjdGlvbk5hbWUuc3Vic3RyKCdhY3Rpb24nLmxlbmd0aCkpXSA9IE1vZGVsW2FjdGlvbk5hbWVdO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGFjdGlvbnM7XG4gIH07XG59O1xuIl19 //# sourceMappingURL=createResourse.js.map