Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // index.js
- var schemas = {
- users: { id:1, name:'', email:'', groups:[] },
- groups: { id:1, name:'' },
- };
- var database = new Database(schemas, {
- users: [
- { id:1, name:'joe', email:'joe@gmail.com', groups:[1] },
- { id:2, name:'joe Blow', email:'joe.blow@example.com', groups:[1, 2] },
- ],
- groups: [
- { id:1, name:'The Joes' },
- { id:2, name:'The Blows' },
- ],
- });
- var app = ApplicationFactory(require('express')(), database);
- // ApplicationFactory.js
- module.exports = function(app, database) {
- app.get('/groups/:id', function(req, res) {
- // this piece of code should be reusable
- database.get('groups', { id:Number(req.params.id) }).then(function(groups) {
- if (groups[0]) {
- database.get('users', { 'groups': [ groups[0].id ] }).then(function(users) {
- groups[0].users = users;
- res.send(groups[0]);
- });
- } else {
- res.sendStatus(404);
- }
- });
- });
- app.post('/groups/:id/users', function(req, res) {
- var groupId = Number(req.params.id);
- var user = req.body;
- database.get('users', { 'id': user.id }).then(function(users) {
- var groups = users[0].groups;
- if (groups.indexOf(groupId) == -1) { groups.push(groupId) }
- database.set('users', { 'groups' : groups }, user.id).then(function() {
- // this piece of code should be reusable
- database.get('groups', { id:groupId }).then(function(groups) {
- database.get('users', { 'groups': [ groups[0].id ] }).then(function(users) {
- groups[0].users = users;
- res.send(groups[0]);
- });
- });
- });
- });
- });
- return app;
- }
Add Comment
Please, Sign In to add comment