SubscriptionLocator.coffee 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. Subscription = require('../../models/Subscription').Subscription
  2. logger = require("logger-sharelatex")
  3. ObjectId = require('mongoose').Types.ObjectId
  4. module.exports =
  5. getUsersSubscription: (user_or_id, callback)->
  6. if user_or_id? and user_or_id._id?
  7. user_id = user_or_id._id
  8. else if user_or_id?
  9. user_id = user_or_id
  10. logger.log user_id:user_id, "getting users subscription"
  11. Subscription.findOne admin_id:user_id, (err, subscription)->
  12. logger.log user_id:user_id, "got users subscription"
  13. callback(err, subscription)
  14. getManagedSubscription: (managerId, callback)->
  15. logger.log managerId: managerId, "getting managed subscription"
  16. Subscription.findOne admin_id: managerId, (err, subscription)->
  17. if subscription?
  18. logger.log managerId: managerId, "got managed subscription"
  19. else
  20. err ||= new Error("No subscription found managed by user #{managerId}")
  21. callback(err, subscription)
  22. getMemberSubscriptions: (user_or_id, callback) ->
  23. if user_or_id? and user_or_id._id?
  24. user_id = user_or_id._id
  25. else if user_or_id?
  26. user_id = user_or_id
  27. logger.log user_id: user_id, "getting users group subscriptions"
  28. Subscription.find(member_ids: user_id).populate("admin_id").exec callback
  29. getSubscription: (subscription_id, callback)->
  30. Subscription.findOne _id:subscription_id, callback
  31. getSubscriptionByMemberIdAndId: (user_id, subscription_id, callback)->
  32. Subscription.findOne {member_ids: user_id, _id:subscription_id}, {_id:1}, callback
  33. getGroupSubscriptionsMemberOf: (user_id, callback)->
  34. Subscription.find {member_ids: user_id}, {_id:1, planCode:1}, callback
  35. getGroupsWithEmailInvite: (email, callback) ->
  36. Subscription.find { invited_emails: email }, callback
  37. getGroupWithV1Id: (v1TeamId, callback) ->
  38. Subscription.findOne { "overleaf.id": v1TeamId }, callback