tracker.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. const Tracker = require("../models/tracker.js");
  2. module.exports = {
  3. /*
  4. POST: create a new tracker
  5. req.body = {
  6. name: String
  7. project: String
  8. description: String
  9. start: Date
  10. }
  11. */
  12. create: function(req, res){
  13. let tracker = new Tracker({
  14. name: req.body.name,
  15. project: req.body.project,
  16. description: req.body.description,
  17. start: new Date(req.body.start),
  18. pauses: []
  19. });
  20. tracker.save()
  21. .then((tracker)=>{
  22. return res.json(tracker);
  23. })
  24. .catch((err)=>{
  25. console.error(err);
  26. return res.json(err);
  27. });
  28. },
  29. /*
  30. PUT: update data on a tracker
  31. req.body = {
  32. id: String
  33. name: String
  34. project: String
  35. description: String
  36. end: Date
  37. pause: {
  38. start: Date
  39. end: Date
  40. }
  41. }
  42. */
  43. update: function(req, res){
  44. Tracker.findOne({_id: req.body.id})
  45. .then((tracker)=>{
  46. if(!tracker) throw "tracker";
  47. if(req.body.name) tracker.name = req.body.name;
  48. if(req.body.project) tracker.project = req.body.project;
  49. if(req.body.description) tracker.description = req.body.description;
  50. if(req.body.end) tracker.end = new Date(req.body.end);
  51. if(req.body.pause){
  52. tracker.pauses.push({
  53. start: new Date(req.body.pause.start),
  54. end: new Date(req.body.pause.end)
  55. });
  56. }
  57. return tracker.save();
  58. })
  59. .then((tracker)=>{
  60. return res.json(tracker);
  61. })
  62. .catch((err)=>{
  63. if(err === "tracker") return res.json("Could not find tracker");
  64. console.error(err);
  65. return res.json(err);
  66. });
  67. }
  68. }