Guest User

Untitled

a guest
Oct 20th, 2017
379
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.63 KB | None | 0 0
  1. // index.js
  2. var schemas = {
  3. users: { id:1, name:'', email:'', groups:[] },
  4. groups: { id:1, name:'' },
  5. };
  6.  
  7. var database = new Database(schemas, {
  8. users: [
  9. { id:1, name:'joe', email:'joe@gmail.com', groups:[1] },
  10. { id:2, name:'joe Blow', email:'joe.blow@example.com', groups:[1, 2] },
  11. ],
  12. groups: [
  13. { id:1, name:'The Joes' },
  14. { id:2, name:'The Blows' },
  15. ],
  16. });
  17.  
  18. var app = ApplicationFactory(require('express')(), database);
  19.  
  20. // ApplicationFactory.js
  21. module.exports = function(app, database) {
  22.  
  23. app.get('/groups/:id', function(req, res) {
  24. // this piece of code should be reusable
  25. database.get('groups', { id:Number(req.params.id) }).then(function(groups) {
  26. if (groups[0]) {
  27. database.get('users', { 'groups': [ groups[0].id ] }).then(function(users) {
  28. groups[0].users = users;
  29. res.send(groups[0]);
  30. });
  31. } else {
  32. res.sendStatus(404);
  33. }
  34. });
  35. });
  36.  
  37. app.post('/groups/:id/users', function(req, res) {
  38. var groupId = Number(req.params.id);
  39. var user = req.body;
  40. database.get('users', { 'id': user.id }).then(function(users) {
  41. var groups = users[0].groups;
  42. if (groups.indexOf(groupId) == -1) { groups.push(groupId) }
  43. database.set('users', { 'groups' : groups }, user.id).then(function() {
  44.  
  45. // this piece of code should be reusable
  46. database.get('groups', { id:groupId }).then(function(groups) {
  47. database.get('users', { 'groups': [ groups[0].id ] }).then(function(users) {
  48. groups[0].users = users;
  49. res.send(groups[0]);
  50. });
  51. });
  52.  
  53. });
  54. });
  55. });
  56.  
  57. return app;
  58. }
Add Comment
Please, Sign In to add comment