Using wrapResponse

This commit is contained in:
Belen Curcio
2017-03-31 12:37:11 -03:00
parent 173e1c16ea
commit 004e8d5fe9
4 changed files with 35 additions and 30 deletions
+31
View File
@@ -0,0 +1,31 @@
const errors = require('../../errors');
const {Error: {ValidationError}} = require('mongoose');
/**
* Wraps up a promise to return an object with the resolution of the promise
* keyed at `key` or an error caught at `errors`.
*/
const wrapResponse = (key) => (promise) => {
return promise.then((value) => {
let res = {};
if (key) {
res[key] = value;
}
return res;
}).catch((err) => {
if (err instanceof errors.APIError) {
return {
errors: [err]
};
} else if (err instanceof ValidationError) {
// TODO: wrap this with one of our internal errors.
throw err;
}
throw err;
});
};
module.exports = wrapResponse;
+1 -28
View File
@@ -1,33 +1,6 @@
const {Error: {ValidationError}} = require('mongoose');
const errors = require('../../errors');
const wrapResponse = require('../helpers/response');
const CommentsService = require('../../services/comments');
/**
* Wraps up a promise to return an object with the resolution of the promise
* keyed at `key` or an error caught at `errors`.
*/
const wrapResponse = (key) => (promise) => {
return promise.then((value) => {
let res = {};
if (key) {
res[key] = value;
}
return res;
}).catch((err) => {
if (err instanceof errors.APIError) {
return {
errors: [err]
};
} else if (err instanceof ValidationError) {
// TODO: wrap this with one of our internal errors.
throw err;
}
throw err;
});
};
const RootMutation = {
createComment(_, {asset_id, parent_id, body}, {mutators: {Comment}}) {
return wrapResponse('comment')(Comment.create({asset_id, parent_id, body}));
@@ -1,5 +1,5 @@
import React from 'react';
export default () => (
<i className="fa fa-handshake-o" aria-hidden="true"></i>
<i className="fa fa-handshake-o" aria-hidden="true"/>
);
+2 -1
View File
@@ -1,11 +1,12 @@
const typeDefs = require('./server/typeDefs');
const wrapResponse = require('../../graph/helpers/response');
module.exports = {
typeDefs,
resolvers: {
RootMutation: {
createRespect(_, {respect: {item_id, item_type}}, {mutators: {Action}}) {
return Action.create({item_id, item_type, action_type: 'RESPECT'});
return wrapResponse(Action.create({item_id, item_type, action_type: 'RESPECT'}));
}
}
},