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};
91exports.userStartWorking = function(req, res) {
92 console.log("userStartWorking");
93 projectModel.findById(req.params.id, function(err, project) {
94 var workstrike={
95 username: req.body.username,
96 start: new Date(),
97 end: "",
98 };
99 project.workStrikes.push(workstrike);
100 console.log(project);
101 project.save(function(err) {
102 if(err) return res.send(500, err.message);
103
104 projectModel.find(function(err, projects) {
105 if(err) res.send(500, err.message);
106
107 res.status(200).jsonp(projects);
108 });
109 });
110 });
111};
112exports.userStopWorking = function(req, res) {
113 console.log("userStopWorking");
114 projectModel.findById(req.params.id, function(err, project) {
115 for(var i=0; i<project.workStrikes.length; i++)
116 {
117 if((project.workStrikes[i].username==req.body.username)&&(project.workStrikes[i].end==null))
118 {
119 project.workStrikes[i].end= new Date();
120 }
121 }
122 console.log(project);
123 project.save(function(err) {
124 if(err) return res.send(500, err.message);
125
126 projectModel.find(function(err, projects) {
127 if(err) res.send(500, err.message);
128
129 res.status(200).jsonp(projects);
130 });
131 });
132 });
133};
134//PUT
135exports.updateProject = function(req, res) {
136 ActivityModel.findById(req.params.id, function(err, tvshow) {
137 tvshow.title = req.body.petId;
138 tvshow.year = req.body.year;
139 tvshow.country = req.body.country;
140 tvshow.poster = req.body.poster;
141 tvshow.seasons = req.body.seasons;
142 tvshow.genre = req.body.genre;
143 tvshow.summary = req.body.summary;
144
145 tvshow.save(function(err) {
146 if(err) return res.send(500, err.message);
147 res.status(200).jsonp(tvshow);
148 });
149 });
150};
151
152//DELETE
153exports.deleteProject = function(req, res) {
154 projectModel.findById(req.params.id, function(err, project) {
155 project.remove(function(err) {
156 if(err) return res.send(500, err.message);
157
158 /*res.status(200).jsonp(req.params.id);*/
159 console.log('DELETE /projects/' + req.params.id);
160 projectModel.find(function(err, projects) {
161 if(err) res.send(500, err.message);
162
163 res.status(200).jsonp(projects);
164 });
165 })
166 });
167};