ProjectGetter.coffee 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. mongojs = require("../../infrastructure/mongojs")
  2. db = mongojs.db
  3. ObjectId = mongojs.ObjectId
  4. async = require "async"
  5. Project = require("../../models/Project").Project
  6. module.exports = ProjectGetter =
  7. EXCLUDE_DEPTH: 8
  8. getProjectWithoutDocLines: (project_id, callback=(error, project) ->) ->
  9. excludes = {}
  10. for i in [1..@EXCLUDE_DEPTH]
  11. excludes["rootFolder#{Array(i).join(".folder")}.docs.lines"] = 0
  12. db.projects.find _id: ObjectId(project_id.toString()), excludes, (error, projects = []) ->
  13. callback error, projects[0]
  14. getProjectWithOnlyFolders: (project_id, callback=(error, project) ->) ->
  15. excludes = {}
  16. for i in [1..@EXCLUDE_DEPTH]
  17. excludes["rootFolder#{Array(i).join(".folder")}.docs"] = 0
  18. excludes["rootFolder#{Array(i).join(".folder")}.fileRefs"] = 0
  19. db.projects.find _id: ObjectId(project_id.toString()), excludes, (error, projects = []) ->
  20. callback error, projects[0]
  21. getProject: (query, projection, callback = (error, project) ->) ->
  22. if typeof query == "string"
  23. query = _id: ObjectId(query)
  24. else if query instanceof ObjectId
  25. query = _id: query
  26. db.projects.findOne query, projection, callback
  27. findAllUsersProjects: (user_id, fields, callback = (error, ownedProjects, readAndWriteProjects, readOnlyProjects) ->) ->
  28. CollaboratorsHandler = require "../Collaborators/CollaboratorsHandler"
  29. Project.find {owner_ref: user_id}, fields, (error, projects) ->
  30. return callback(error) if error?
  31. CollaboratorsHandler.getProjectsUserIsCollaboratorOf user_id, fields, (error, readAndWriteProjects, readOnlyProjects) ->
  32. return callback(error) if error?
  33. callback null, projects, readAndWriteProjects, readOnlyProjects