Skip to content

Instantly share code, notes, and snippets.

@alexbeletsky
Created March 8, 2017 19:59
Show Gist options
  • Save alexbeletsky/35e34c32825a33a70f54ddf043e4cfca to your computer and use it in GitHub Desktop.
Save alexbeletsky/35e34c32825a33a70f54ddf043e4cfca to your computer and use it in GitHub Desktop.
API endpoint as promise chain
import domain from '../../domain';
const Handler = {
getGroups: (request, reply) => {
const groups = domain.groups(request, reply);
return Promise.resolve()
.then(groups.getGroups)
.then(groups.transformMany)
.then(groups.reply);
},
postGroup: (request, reply) => {
const groups = domain.groups(request, reply);
return Promise.resolve()
.then(groups.assertGroupExist)
.then(groups.createGroup)
.then(groups.transformOne)
.then(groups.replyCreated);
},
putUserToGroup: (request, reply) => {
const groups = domain.groups(request, reply);
const users = domain.users(request, reply);
return Promise.resolve()
.then(groups.assertGroupExist)
.then(users.assertUserExist)
.then(groups.addUser)
.then(groups.replyEmpty);
},
removeUserFromGroup: (request, reply) => {
const users = domain.users(request, reply);
const groups = domain.groups(request, reply);
return Promise.resolve()
.then(groups.assertGroupExist)
.then(users.assertUserExist)
.then(groups.removeUser)
.then(groups.replyEmpty);
},
getGroupUsers: (request, reply) => {
const groups = domain.groups(request, reply);
const groupUsers = domain.groupUsers(request, reply);
return Promise.resolve()
.then(groups.assertGroupExist)
.then(groupUsers.getGroupUsers)
.then(groupUsers.transformMany)
.then(groupUsers.reply);
}
};
export default Handler;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment