UNPKG

trailpack-proxy-cart

Version:

eCommerce - Trailpack for Proxy Engine

187 lines (175 loc) 4.7 kB
'use strict' const Controller = require('trails/controller') const Errors = require('proxy-engine-errors') const lib = require('../../lib') /** * @module FulfillmentController * @description Fulfillment Controller. */ module.exports = class FulfillmentController extends Controller { /** * * @param req * @param res */ generalStats(req, res) { res.json({}) } /** * Find One By ID * @param req * @param res */ findById(req, res) { const Fulfillment = this.app.orm['Fulfillment'] const id = req.params.id Fulfillment.findByIdDefault(id, {}) .then(fulfillment => { if (!fulfillment) { throw new Errors.FoundError(Error(`Fulfillment id ${id} not found`)) } return this.app.services.ProxyPermissionsService.sanitizeResult(req, fulfillment) }) .then(result => { return res.json(result) }) .catch(err => { return res.serverError(err) }) } /** * Count the amount of fulfillments * @param req * @param res */ count(req, res){ const ProxyEngineService = this.app.services.ProxyEngineService ProxyEngineService.count('Fulfillment') .then(count => { const counts = { fulfillments: count } return res.json(counts) }) .catch(err => { return res.serverError(err) }) } /** * Find All Fulfillments * @param req * @param res */ findAll(req, res) { const orm = this.app.orm const Fulfillment = orm['Fulfillment'] const limit = Math.max(0,req.query.limit || 10) const offset = Math.max(0, req.query.offset || 0) const sort = req.query.sort || [['created_at', 'DESC']] const where = this.app.services.ProxyEngineService.jsonCritera(req.query.where) Fulfillment.findAndCount({ order: sort, offset: offset, limit: limit, where: where }) .then(fulfillments => { this.app.services.ProxyEngineService.paginate(res, fulfillments.count, limit, offset, sort) return this.app.services.ProxyPermissionsService.sanitizeResult(req, fulfillments.rows) }) .then(result => { return res.json(result) }) .catch(err => { return res.serverError(err) }) } /** * Create Fulfillment * @param req * @param res */ create(req, res) { const FulfillmentService = this.app.services.FulfillmentService lib.Validator.validateFulfillment.create(req.body) .then(values => { req.body.id = req.params.id return FulfillmentService.create(req.body) }) .then(fulfillment => { return this.app.services.ProxyPermissionsService.sanitizeResult(req, fulfillment) }) .then(result => { return res.json(result) }) .catch(err => { return res.serverError(err) }) } /** * Update Fulfillment * @param req * @param res */ update(req, res) { const FulfillmentService = this.app.services.FulfillmentService lib.Validator.validateFulfillment.update(req.body) .then(values => { req.body.id = req.params.id return FulfillmentService.updateFulfillment(req.body) }) .then(fulfillment => { return this.app.services.ProxyPermissionsService.sanitizeResult(req, fulfillment) }) .then(result => { return res.json(result) }) .catch(err => { return res.serverError(err) }) } /** * Cancel Fulfillment * @param req * @param res */ cancel(req, res) { const FulfillmentService = this.app.services.FulfillmentService lib.Validator.validateFulfillment.cancel(req.body) .then(values => { req.body.id = req.params.id return FulfillmentService.cancel(req.body) }) .then(fulfillment => { return this.app.services.ProxyPermissionsService.sanitizeResult(req, fulfillment) }) .then(result => { return res.json(result) }) .catch(err => { return res.serverError(err) }) } /** * Destroy Fulfillment * @param req * @param res */ destroy(req, res) { const FulfillmentService = this.app.services.FulfillmentService lib.Validator.validateFulfillment.destroy(req.body) .then(values => { req.body.id = req.params.id return FulfillmentService.destroy(req.body) }) .then(fulfillment => { return this.app.services.ProxyPermissionsService.sanitizeResult(req, fulfillment) }) .then(result => { return res.json(result) }) .catch(err => { return res.serverError(err) }) } }