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.
const _ = require('lodash');
const request = require('./helpers/request');
const response = require('./helpers/response');
/**
@ -64,6 +65,18 @@ module.exports = function (strapi) {
strapi.app.use(interceptor);
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.
const regex = require('../../../../util/regex');
const JSONAPI = require('../jsonapi')();
/**
* Router hook
@ -86,6 +87,7 @@ module.exports = function (strapi) {
// Add the `globalPolicy`.
policies.push(globalPolicy(endpoint, value, route));
policies.push(JSONAPI.parse);
if (_.isArray(value.policies) && !_.isEmpty(value.policies)) {
_.forEach(value.policies, function (policy) {