UNPKG

trailpack-hapi

Version:

Hapi.js Trailpack. This pack binds the routes compiled in trailpack-router to a Hapi Server.

115 lines (95 loc) 2.77 kB
const _ = require('lodash') const Boom = require('boom') /** * Footprint Policy * * Validate footprint requests; namely, that the path parameters represent * actual and correct models and actions. Semantic ORM input validation is * performed by the FootprintService. * * @see http://hapijs.com/api#request-object */ module.exports = class FootprintPolicy extends Policy { /** * Create Policy. * @see FootprintController.create */ create (request, reply) { this.log.debug('[FootprintPolicy] (create)') if (!_.isPlainObject(request.payload) && !_.isArray(request.payload)) { return reply(Boom.preconditionFailed(this.__('errors.footprints.payload'))) } reply() } /** * Find Policy. * @see FootprintController.find */ find (request, reply) { const criteria = this.app.packs.hapi.getCriteriaFromQuery(request.query) if (request.params.id && !_.isEmpty(criteria)) { return reply(Boom.preconditionFailed(this.__('errors.footprints.find.mutex'))) } reply() } /** * Update Policy. * @see FootprintController.update */ update (request, reply) { if (request.params.id && !_.isEmpty(request.query)) { return reply(Boom.preconditionFailed(this.__('errors.footprints.update.mutex'))) } reply() } /** * Destroy Policy. * @see FootprintController.destroy */ destroy (request, reply) { if (request.params.id && !_.isEmpty(request.query)) { return reply(Boom.preconditionFailed(this.__('errors.footprints.destroy.mutex'))) } reply() } /** * Create Association Policy. * @see FootprintController.createAssociation */ createAssociation (request, reply) { if (!_.isPlainObject(request.payload)) { return reply(Boom.preconditionFailed(this.__('errors.footprints.payload'))) } reply() } /** * Find Association Policy. * @see FootprintController.findAssociation */ findAssociation (request, reply) { if (request.params.childId && !_.isEmpty(request.query)) { return reply(Boom.preconditionFailed(this.__('errors.footprints.find.mutex'))) } reply() } /** * Update Association Policy. * @see FootprintController.updateAssociation */ updateAssociation (request, reply) { if (request.params.childId && !_.isEmpty(request.query)) { return reply(Boom.preconditionFailed(this.__('errors.footprints.update.mutex'))) } reply() } /** * Destroy Association Policy. * @see FootprintController.destroyAssociation */ destroyAssociation (request, reply) { if (request.params.childId && !_.isEmpty(request.query)) { return reply(Boom.preconditionFailed(this.__('errors.footprints.destroy.mutex'))) } reply() } }