UNPKG

@express-knex/controller

Version:
8 lines 3.15 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]=void 0;var _default=function(a){if(!a.errors)throw Error("Controller package: expect app.errors to be mounted with proper error classes");if(!a.errors.ServerError||!a.errors.ServerGenericError||!a.errors.ServerInvalidParameters||!a.errors.ServerNotFound)throw Error("Controller package can not find expected error classes at app.errors");if(!a.validator)throw Error("Controller package: expect app.validator to be mounter");if(!a.validator.validatorFromModel)throw Error("Controller package: expect app.validator.validatorFromModel");return{list:function list(b){return function(c,d){// no params or input objects return Promise.all([b.findAll(),b.count()]).then(function(a){var c=a[0],e=a[1];return d.set("Content-Range","".concat(b.name," 0-").concat(e,"/").concat(e)),d.status(200).json(c),c})["catch"](function(b){if(b instanceof a.errors.ServerError)throw b;else throw console.log(b),new a.errors.ServerGenericError(b)})}},create:function create(b){return function(c,d){// validate that body have proper object without ID: var e=a.validator.validatorFromModel(b);// perform create instance: return a.validator.applyValidationsToReq(e,c).then(function(){return b.create(c.matchedData)}).then(function(a){return d.status(201).json(a),a})["catch"](function(b){if(b instanceof a.errors.ServerError)throw b;else throw new a.errors.ServerGenericError(b)})}},item:function item(b){return function(c,d){// validate that req have id param return b.findById(c.params.id).then(function(e){if(!e)throw a.errors.ServerNotFound(b.name,c.params.id,"".concat(b.name," with id ").concat(c.params.id," not found"));return d.status(200).json(e),e})["catch"](function(b){if(b instanceof a.errors.ServerError)throw b;else throw new a.errors.ServerGenericError(b)})}},save:function save(b){return function(c,d){c.matchedData.id=c.params.id;var e=a.validator.validatorFromModel(b);// perform create instance: return a.validator.applyValidationsToReq(e,c).then(function(){return b.update(c.matchedData)}).then(function(a){return d.status(200).json(a),a})["catch"](function(b){if(b instanceof a.errors.ServerError)throw b;else throw new a.errors.ServerGenericError(b)})}},remove:function remove(b){return function(c,d){// check for id: return b.removeById(c.params.id).then(function(e){if(e)return d.status(200).json(e),e;throw new a.errors.ServerNotFound(b.name,c.params.id,"".concat(b.name," with id ").concat(c.params.id," not found"))})}},removeAll:function removeAll(b){return function(c,d){// console.log(req.qs) if(c.qs=JSON.parse(c.query.filter),!(c.qs&&c.qs.ids))throw new a.errors.ServerInvalidParameters("filter","query parameter","filter query parameter should exists and have ids property");return b.removeAll({whereIn:{column:b.key,ids:c.qs.ids}}).then(function(b){if(b)return d.status(200).json(b),b;throw new a.errors.ServerError("Not found - ids")})["catch"](function(b){if(b instanceof a.errors.ServerError)throw b;else throw new a.errors.ServerGenericError(b)})}}}};exports["default"]=_default,module.exports=exports.default,module.exports.default=exports.default;