Ejemplo n.º 1
0
    ], (error, document) => {
      if (error) {
        if (error.errors) {
          return sendError(res, error, 400);
        }

        return sendError(res, error);
      }

      if (!document) {
        return sendError(res, 'Failed to create resource object for unknown reason');
      }

      sendDocument(res, document, 201);
    });
Ejemplo n.º 2
0
  return (req, res, next) => {
    var errors = [];

    debug('req.body %o', req.body);

    if (typeof req.body.data === 'undefined') {
      errors.push(new Error('Data value not provided top-level in body of request'));
    } else {
      if (typeof req.body.data.attributes === 'undefined') {
        errors.push(new Error('Attributes value not provided within data value of request'));
      }

      if (typeof req.body.data.type === 'undefined') {
        errors.push(new Error('Type value not provided within data value of request'));
      } else if (model && req.body.data.type !== _.kebabCase(model.modelType())) {
        errors.push(new Error('Type value provided within data value of request does not match type indicated by URL'));
      }

      if (req.params.id && !req.body.data.id) {
        errors.push(new Error('ID value not provided within data value of request'));
      } else if (req.params.id && req.body.data.id !== req.params.id) {
        errors.push(new Error('ID value provided within data value of request does not match ID indicated by URL'));
      }
    }

    if (errors.length > 0) {
      var error = new Error('Failed to validate request body');
      error.errors = errors;
      sendError(res, error, 400);
    } else {
      next();
    }
  };