@lskjs/server
Version:
LSK server.
163 lines (142 loc) • 11.8 kB
JavaScript
;
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL2NyZWF0ZVJlc291cnNlLmpzIl0sIm5hbWVzIjpbInVwcGVyY2FzZUZpcnN0TGV0dGVyIiwic3RyaW5nIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzbGljZSIsImxvd2VyY2FzZUZpcnN0TGV0dGVyIiwidG9Mb3dlckNhc2UiLCJjdHgiLCJjcmVhdGVSZXNvdXJzZSIsIk1vZGVsIiwiaW5mbyIsImFjdGlvbk5hbWVzIiwic3RhdGljTWV0aG9kcyIsImZpbHRlciIsImEiLCJzdWJzdHIiLCJsZW5ndGgiLCJwcmVwYXJlIiwicmF3TW9kZWwiLCJhY3Rpb25zIiwibGlzdCIsInJlcSIsImZpbmRCeVBhcmFtcyIsImRhdGEiLCJjcmVhdGUiLCJib2R5IiwiZ2V0IiwiaWQiLCJxdWVyeSIsIl9pZCIsImZpbmRCeUlkIiwidGhlbiIsImhlbHBlcnMiLCJjaGVja05vdEZvdW5kIiwidXBkYXRlIiwiZmluZEJ5SWRBbmRVcGRhdGUiLCJyZW1vdmUiLCJmaW5kQnlJZEFuZFJlbW92ZSIsImZvckVhY2giLCJhY3Rpb25OYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBRUEsU0FBU0Esb0JBQVQsQ0FBOEJDLE1BQTlCLEVBQXNDO0FBQ3BDLFNBQU9BLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjLENBQWQsRUFBaUJDLFdBQWpCLEtBQWlDRixNQUFNLENBQUNHLEtBQVAsQ0FBYSxDQUFiLENBQXhDO0FBQ0Q7O0FBQ0QsU0FBU0Msb0JBQVQsQ0FBOEJKLE1BQTlCLEVBQXNDO0FBQ3BDLFNBQU9BLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjLENBQWQsRUFBaUJJLFdBQWpCLEtBQWlDTCxNQUFNLENBQUNHLEtBQVAsQ0FBYSxDQUFiLENBQXhDO0FBQ0Q7O2VBQ2Msa0JBQUNHLEdBQUQsRUFBUztBQUN0QixTQUFPLFNBQVNDLGNBQVQsQ0FBd0JDLEtBQXhCLEVBQStCO0FBQ3BDLFFBQU1DLElBQUksR0FBRyw4QkFBYUQsS0FBYixDQUFiO0FBQ0EsUUFBTUUsV0FBVyxHQUFHRCxJQUFJLENBQUNFLGFBQUwsQ0FDakJDLE1BRGlCLENBQ1YsVUFBQUMsQ0FBQztBQUFBLGFBQUlBLENBQUMsQ0FBQ0MsTUFBRixDQUFTLENBQVQsRUFBWSxTQUFTQyxNQUFyQixNQUFpQyxRQUFyQztBQUFBLEtBRFMsQ0FBcEI7O0FBR0EsUUFBTUMsT0FBTyxHQUFHLFNBQVZBLE9BQVUsQ0FBQ0MsUUFBRCxFQUFjO0FBQzVCLFVBQUksQ0FBQ0EsUUFBTCxFQUFlLE9BQU9BLFFBQVA7QUFDZixVQUFJLENBQUNULEtBQUssQ0FBQ1EsT0FBWCxFQUFvQixPQUFPQyxRQUFQO0FBQ3BCLGFBQU9ULEtBQUssQ0FBQ1EsT0FBTixDQUFjQyxRQUFkLENBQVA7QUFDRCxLQUpEOztBQUtBLFFBQU1DLE9BQU8sR0FBRztBQUNSQyxNQUFBQSxJQURRLGdCQUNIQyxHQURHLEVBQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHlCQUNTWixLQUFLLENBQUNhLFlBQU4sQ0FBbUJELEdBQUcsQ0FBQ0UsSUFBdkIsQ0FEVDs7QUFBQTtBQUNSTCxrQkFBQUEsUUFEUTtBQUFBLG1EQUVQRCxPQUFPLENBQUNDLFFBQUQsQ0FGQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdmLE9BSmE7QUFNUk0sTUFBQUEsTUFOUSxrQkFNREgsR0FOQyxFQU1JO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx5QkFDT1osS0FBSyxDQUFDZSxNQUFOLENBQWFILEdBQUcsQ0FBQ0ksSUFBakIsQ0FEUDs7QUFBQTtBQUNWUCxrQkFBQUEsUUFEVTtBQUFBLG9EQUVURCxPQUFPLENBQUNDLFFBQUQsQ0FGRTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdqQixPQVRhO0FBV1JRLE1BQUFBLEdBWFEsZUFXSkwsR0FYSSxFQVdDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ1BNLGtCQUFBQSxFQURPLEdBQ0ZOLEdBQUcsQ0FBQ08sS0FBSixDQUFVQyxHQURSO0FBQUE7QUFBQSx5QkFFVXBCLEtBQUssQ0FBQ3FCLFFBQU4sQ0FBZUgsRUFBZixFQUFtQkksSUFBbkIsQ0FBd0J4QixHQUFHLENBQUN5QixPQUFKLENBQVlDLGFBQXBDLENBRlY7O0FBQUE7QUFFUGYsa0JBQUFBLFFBRk87QUFBQSxvREFHTkQsT0FBTyxDQUFDQyxRQUFELENBSEQ7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJZCxPQWZhO0FBZ0JSZ0IsTUFBQUEsTUFoQlEsa0JBZ0JEYixHQWhCQyxFQWdCSTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNWTSxrQkFBQUEsRUFEVSxHQUNMTixHQUFHLENBQUNPLEtBQUosQ0FBVUMsR0FETDtBQUFBO0FBQUEseUJBRU9wQixLQUFLLENBQUMwQixpQkFBTixDQUF3QlIsRUFBeEIsRUFBNEJOLEdBQUcsQ0FBQ0ksSUFBaEMsRUFBc0M7QUFBRSwyQkFBSztBQUFQLG1CQUF0QyxFQUFxRE0sSUFBckQsQ0FBMER4QixHQUFHLENBQUN5QixPQUFKLENBQVlDLGFBQXRFLENBRlA7O0FBQUE7QUFFVmYsa0JBQUFBLFFBRlU7QUFBQSxvREFHVEQsT0FBTyxDQUFDQyxRQUFELENBSEU7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJakIsT0FwQmE7QUFxQlJrQixNQUFBQSxNQXJCUSxrQkFxQkRmLEdBckJDLEVBcUJJO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ1ZNLGtCQUFBQSxFQURVLEdBQ0xOLEdBQUcsQ0FBQ08sS0FBSixDQUFVQyxHQURMO0FBQUE7QUFBQSx5QkFFT3BCLEtBQUssQ0FBQzRCLGlCQUFOLENBQXdCVixFQUF4QixFQUE0QkksSUFBNUIsQ0FBaUN4QixHQUFHLENBQUN5QixPQUFKLENBQVlDLGFBQTdDLENBRlA7O0FBQUE7QUFFVmYsa0JBQUFBLFFBRlU7QUFBQSxvREFHVEQsT0FBTyxDQUFDQyxRQUFELENBSEU7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJakI7QUF6QmEsS0FBaEI7QUE0QkFQLElBQUFBLFdBQVcsQ0FBQzJCLE9BQVosQ0FBb0IsVUFBQ0MsVUFBRCxFQUFnQjtBQUNsQ3BCLE1BQUFBLE9BQU8sQ0FBQ2Qsb0JBQW9CLENBQUNrQyxVQUFVLENBQUN4QixNQUFYLENBQWtCLFNBQVNDLE1BQTNCLENBQUQsQ0FBckIsQ0FBUCxHQUFvRVAsS0FBSyxDQUFDOEIsVUFBRCxDQUF6RTtBQUNELEtBRkQ7QUFJQSxXQUFPcEIsT0FBUDtBQUNELEdBM0NEO0FBNENELEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0Q2xhc3NJbmZvIGZyb20gJy4vZ2V0Q2xhc3NJbmZvJztcblxuZnVuY3Rpb24gdXBwZXJjYXNlRmlyc3RMZXR0ZXIoc3RyaW5nKSB7XG4gIHJldHVybiBzdHJpbmcuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBzdHJpbmcuc2xpY2UoMSk7XG59XG5mdW5jdGlvbiBsb3dlcmNhc2VGaXJzdExldHRlcihzdHJpbmcpIHtcbiAgcmV0dXJuIHN0cmluZy5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKSArIHN0cmluZy5zbGljZSgxKTtcbn1cbmV4cG9ydCBkZWZhdWx0IChjdHgpID0+IHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGNyZWF0ZVJlc291cnNlKE1vZGVsKSB7XG4gICAgY29uc3QgaW5mbyA9IGdldENsYXNzSW5mbyhNb2RlbCk7XG4gICAgY29uc3QgYWN0aW9uTmFtZXMgPSBpbmZvLnN0YXRpY01ldGhvZHNcbiAgICAgIC5maWx0ZXIoYSA9PiBhLnN1YnN0cigwLCAnYWN0aW9uJy5sZW5ndGgpID09PSAnYWN0aW9uJyk7XG5cbiAgICBjb25zdCBwcmVwYXJlID0gKHJhd01vZGVsKSA9PiB7XG4gICAgICBpZiAoIXJhd01vZGVsKSByZXR1cm4gcmF3TW9kZWw7XG4gICAgICBpZiAoIU1vZGVsLnByZXBhcmUpIHJldHVybiByYXdNb2RlbDtcbiAgICAgIHJldHVybiBNb2RlbC5wcmVwYXJlKHJhd01vZGVsKTtcbiAgICB9O1xuICAgIGNvbnN0IGFjdGlvbnMgPSB7XG4gICAgICBhc3luYyBsaXN0KHJlcSkge1xuICAgICAgICBjb25zdCByYXdNb2RlbCA9IGF3YWl0IE1vZGVsLmZpbmRCeVBhcmFtcyhyZXEuZGF0YSk7XG4gICAgICAgIHJldHVybiBwcmVwYXJlKHJhd01vZGVsKTtcbiAgICAgIH0sXG5cbiAgICAgIGFzeW5jIGNyZWF0ZShyZXEpIHtcbiAgICAgICAgY29uc3QgcmF3TW9kZWwgPSBhd2FpdCBNb2RlbC5jcmVhdGUocmVxLmJvZHkpO1xuICAgICAgICByZXR1cm4gcHJlcGFyZShyYXdNb2RlbCk7XG4gICAgICB9LFxuXG4gICAgICBhc3luYyBnZXQocmVxKSB7XG4gICAgICAgIGNvbnN0IGlkID0gcmVxLnF1ZXJ5Ll9pZDtcbiAgICAgICAgY29uc3QgcmF3TW9kZWwgPSBhd2FpdCBNb2RlbC5maW5kQnlJZChpZCkudGhlbihjdHguaGVscGVycy5jaGVja05vdEZvdW5kKTtcbiAgICAgICAgcmV0dXJuIHByZXBhcmUocmF3TW9kZWwpO1xuICAgICAgfSxcbiAgICAgIGFzeW5jIHVwZGF0ZShyZXEpIHtcbiAgICAgICAgY29uc3QgaWQgPSByZXEucXVlcnkuX2lkO1xuICAgICAgICBjb25zdCByYXdNb2RlbCA9IGF3YWl0IE1vZGVsLmZpbmRCeUlkQW5kVXBkYXRlKGlkLCByZXEuYm9keSwgeyBuZXc6IHRydWUgfSkudGhlbihjdHguaGVscGVycy5jaGVja05vdEZvdW5kKTtcbiAgICAgICAgcmV0dXJuIHByZXBhcmUocmF3TW9kZWwpO1xuICAgICAgfSxcbiAgICAgIGFzeW5jIHJlbW92ZShyZXEpIHtcbiAgICAgICAgY29uc3QgaWQgPSByZXEucXVlcnkuX2lkO1xuICAgICAgICBjb25zdCByYXdNb2RlbCA9IGF3YWl0IE1vZGVsLmZpbmRCeUlkQW5kUmVtb3ZlKGlkKS50aGVuKGN0eC5oZWxwZXJzLmNoZWNrTm90Rm91bmQpO1xuICAgICAgICByZXR1cm4gcHJlcGFyZShyYXdNb2RlbCk7XG4gICAgICB9LFxuICAgIH07XG5cbiAgICBhY3Rpb25OYW1lcy5mb3JFYWNoKChhY3Rpb25OYW1lKSA9PiB7XG4gICAgICBhY3Rpb25zW2xvd2VyY2FzZUZpcnN0TGV0dGVyKGFjdGlvbk5hbWUuc3Vic3RyKCdhY3Rpb24nLmxlbmd0aCkpXSA9IE1vZGVsW2FjdGlvbk5hbWVdO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGFjdGlvbnM7XG4gIH07XG59O1xuIl19
//# sourceMappingURL=createResourse.js.map