Add middleware to parse data request

This commit is contained in:
Aurélien Georget 2016-01-26 18:03:52 +01:00
parent 8408538f21
commit 9dd94e72a2
3 changed files with 38 additions and 0 deletions

View File

@ -0,0 +1,23 @@
'use strict';
/**
* Module dependencies
*/
// Public node modules.
const _ = require('lodash');
/**
* JSON API helper
*/
module.exports = {
default: {},
/**
* Parse request
*/
parse: function (ctx) {}
};

View File

@ -6,6 +6,7 @@
// Public node modules. // Public node modules.
const _ = require('lodash'); const _ = require('lodash');
const request = require('./helpers/request');
const response = require('./helpers/response'); const response = require('./helpers/response');
/** /**
@ -64,6 +65,18 @@ module.exports = function (strapi) {
strapi.app.use(interceptor); strapi.app.use(interceptor);
cb(); cb();
},
parse: function * (next) {
// Verify Content-Type header
if (this.request.type !== 'application/vnd.api+json') {
this.status = 406;
this.body = '';
}
request.parse(this);
yield next;
} }
}; };

View File

@ -12,6 +12,7 @@ const _ = require('lodash');
// Local utilities. // Local utilities.
const regex = require('../../../../util/regex'); const regex = require('../../../../util/regex');
const JSONAPI = require('../jsonapi')();
/** /**
* Router hook * Router hook
@ -86,6 +87,7 @@ module.exports = function (strapi) {
// Add the `globalPolicy`. // Add the `globalPolicy`.
policies.push(globalPolicy(endpoint, value, route)); policies.push(globalPolicy(endpoint, value, route));
policies.push(JSONAPI.parse);
if (_.isArray(value.policies) && !_.isEmpty(value.policies)) { if (_.isArray(value.policies) && !_.isEmpty(value.policies)) {
_.forEach(value.policies, function (policy) { _.forEach(value.policies, function (policy) {