arnaucube
arnaucube/openworktimePublic Self-hosted repository
openworktime/controllers/projectController.js
controllers/projectController.jsRaw
  1//File: controllers/projectController.js
  2var mongoose = require('mongoose');
  3var projectModel  = mongoose.model('projectModel');
  4
  5var userModel  = mongoose.model('userModel');
  6
  7//GET
  8exports.findAllProjects = function(req, res) {
  9
 10	projectModel.find(function(err, projects) {
 11	    if(err) res.send(500, err.message);
 12
 13		res.status(200).jsonp(projects);
 14	});
 15
 16
 17};
 18
 19//GET
 20exports.findById = function(req, res) {
 21	projectModel.findById(req.params.id, function(err, project) {
 22    if(err) return res.send(500, err.message);
 23
 24    console.log('GET /project/' + req.params.id);
 25		res.status(200).jsonp(project);
 26	});
 27};
 28
 29exports.findAllProjectsFromUsername = function(req, res) {
 30    projectModel.find({
 31      owner: req.params.username
 32  }, function(err, projects) {
 33
 34      if (err) throw err;
 35
 36      if (!projects) {
 37        res.json({ success: false, message: 'no projects for user' });
 38    } else if (projects) {
 39        console.log(projects);
 40          // return the information including token as JSON
 41          res.jsonp(projects);
 42
 43
 44      }
 45
 46    });
 47};
 48
 49exports.addProject = function(req, res) {
 50	console.log('POST new project, title: ' + req.body.title);
 51	var project = new projectModel({
 52		title: req.body.title,
 53	    description:   req.body.description,
 54	    icon:   req.body.icon,
 55	    users:   req.body.users,
 56	    chart:   req.body.chart,
 57	    dateCreation:   req.body.dateCreation,
 58	    github:   req.body.github,
 59	    refnum:   req.body.refnum
 60	});
 61
 62	project.save(function(err, project) {
 63		if(err) return res.send(500, err.message);
 64	    /*res.status(200).jsonp(project);*/
 65		projectModel.find(function(err, projects) {
 66			if(err) res.send(500, err.message);
 67
 68			res.status(200).jsonp(projects);
 69		});
 70	});
 71};
 72
 73exports.addUserToProject = function(req, res) {
 74	console.log("addUserToProject");
 75	console.log(req.body);
 76	projectModel.findById(req.params.id, function(err, project) {
 77		console.log(project);
 78		project.users.push(req.body.username);
 79		console.log(project.users);
 80		project.save(function(err) {
 81			if(err) return res.send(500, err.message);
 82
 83			projectModel.find(function(err, projects) {
 84			    if(err) res.send(500, err.message);
 85
 86				res.status(200).jsonp(projects);
 87			});
 88		});
 89	});
 90};
 91
 92//PUT
 93exports.updateProject = function(req, res) {
 94	ActivityModel.findById(req.params.id, function(err, tvshow) {
 95		tvshow.title   = req.body.petId;
 96		tvshow.year    = req.body.year;
 97		tvshow.country = req.body.country;
 98		tvshow.poster  = req.body.poster;
 99		tvshow.seasons = req.body.seasons;
100		tvshow.genre   = req.body.genre;
101		tvshow.summary = req.body.summary;
102
103		tvshow.save(function(err) {
104			if(err) return res.send(500, err.message);
105      res.status(200).jsonp(tvshow);
106		});
107	});
108};
109
110//DELETE
111exports.deleteProject = function(req, res) {
112	projectModel.findById(req.params.id, function(err, project) {
113		project.remove(function(err) {
114			if(err) return res.send(500, err.message);
115
116      		/*res.status(200).jsonp(req.params.id);*/
117		    console.log('DELETE /projects/' + req.params.id);
118			projectModel.find(function(err, projects) {
119			    if(err) res.send(500, err.message);
120
121				res.status(200).jsonp(projects);
122			});
123		})
124	});
125};