ProjectCollabratecDetailsHandler.coffee 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. ObjectId = require("mongojs").ObjectId
  2. Project = require("../../models/Project").Project
  3. module.exports = ProjectCollabratecDetailsHandler =
  4. initializeCollabratecProject: (project_id, user_id, collabratec_document_id, collabratec_privategroup_id, callback=(err)->) ->
  5. try
  6. project_id = ObjectId(project_id)
  7. user_id = ObjectId(user_id)
  8. catch err
  9. return callback err
  10. update = $set: { collabratecUsers: [ { user_id, collabratec_document_id, collabratec_privategroup_id } ] }
  11. Project.update { _id: project_id }, update, callback
  12. isLinkedCollabratecUserProject: (project_id, user_id, callback=(err, isLinked)->) ->
  13. try
  14. project_id = ObjectId(project_id)
  15. user_id = ObjectId(user_id)
  16. catch err
  17. return callback err
  18. query =
  19. _id: project_id
  20. collabratecUsers: $elemMatch:
  21. user_id: user_id
  22. Project.findOne query, {_id: 1}, (err, project) ->
  23. callback err if err?
  24. callback null, project?
  25. linkCollabratecUserProject: (project_id, user_id, collabratec_document_id, callback=(err)->) ->
  26. try
  27. project_id = ObjectId(project_id)
  28. user_id = ObjectId(user_id)
  29. catch err
  30. return callback err
  31. query =
  32. _id: project_id
  33. collabratecUsers: $not: $elemMatch:
  34. collabratec_document_id: collabratec_document_id
  35. user_id: user_id
  36. update = $push: collabratecUsers:
  37. collabratec_document_id: collabratec_document_id
  38. user_id: user_id
  39. Project.update query, update, callback
  40. unlinkCollabratecUserProject: (project_id, user_id, callback=(err)->) ->
  41. try
  42. project_id = ObjectId(project_id)
  43. user_id = ObjectId(user_id)
  44. catch err
  45. return callback err
  46. query =
  47. _id: project_id
  48. update = $pull: collabratecUsers:
  49. user_id: user_id
  50. Project.update query, update, callback