SubscriptionLocator.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. /* eslint-disable
  2. camelcase,
  3. handle-callback-err,
  4. max-len,
  5. no-unused-vars,
  6. */
  7. // TODO: This file was created by bulk-decaffeinate.
  8. // Fix any style issues and re-enable lint.
  9. /*
  10. * decaffeinate suggestions:
  11. * DS102: Remove unnecessary code created because of implicit returns
  12. * DS207: Consider shorter variations of null checks
  13. * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
  14. */
  15. const { promisify } = require('util')
  16. const { Subscription } = require('../../models/Subscription')
  17. const { DeletedSubscription } = require('../../models/DeletedSubscription')
  18. const logger = require('logger-sharelatex')
  19. const { ObjectId } = require('mongoose').Types
  20. const SubscriptionLocator = {
  21. getUsersSubscription(user_or_id, callback) {
  22. const user_id = SubscriptionLocator._getUserId(user_or_id)
  23. logger.log({ user_id }, 'getting users subscription')
  24. return Subscription.findOne({ admin_id: user_id }, function(
  25. err,
  26. subscription
  27. ) {
  28. logger.log({ user_id }, 'got users subscription')
  29. return callback(err, subscription)
  30. })
  31. },
  32. findManagedSubscription(managerId, callback) {
  33. logger.log({ managerId }, 'finding managed subscription')
  34. return Subscription.findOne({ manager_ids: managerId }, callback)
  35. },
  36. getManagedGroupSubscriptions(user_or_id, callback) {
  37. if (callback == null) {
  38. callback = function(error, managedSubscriptions) {}
  39. }
  40. const user_id = SubscriptionLocator._getUserId(user_or_id)
  41. return Subscription.find({
  42. manager_ids: user_or_id,
  43. groupPlan: true
  44. })
  45. .populate('admin_id')
  46. .exec(callback)
  47. },
  48. getMemberSubscriptions(user_or_id, callback) {
  49. const user_id = SubscriptionLocator._getUserId(user_or_id)
  50. logger.log({ user_id }, 'getting users group subscriptions')
  51. return Subscription.find({ member_ids: user_id })
  52. .populate('admin_id')
  53. .exec(callback)
  54. },
  55. getSubscription(subscription_id, callback) {
  56. return Subscription.findOne({ _id: subscription_id }, callback)
  57. },
  58. getSubscriptionByMemberIdAndId(user_id, subscription_id, callback) {
  59. return Subscription.findOne(
  60. { member_ids: user_id, _id: subscription_id },
  61. { _id: 1 },
  62. callback
  63. )
  64. },
  65. getGroupSubscriptionsMemberOf(user_id, callback) {
  66. return Subscription.find(
  67. { member_ids: user_id },
  68. { _id: 1, planCode: 1 },
  69. callback
  70. )
  71. },
  72. getGroupsWithEmailInvite(email, callback) {
  73. return Subscription.find({ invited_emails: email }, callback)
  74. },
  75. getGroupWithV1Id(v1TeamId, callback) {
  76. return Subscription.findOne({ 'overleaf.id': v1TeamId }, callback)
  77. },
  78. getUserDeletedSubscriptions(userId, callback) {
  79. logger.log({ userId }, 'getting users deleted subscriptions')
  80. DeletedSubscription.find({ 'subscription.admin_id': userId }, callback)
  81. },
  82. getDeletedSubscription(subscriptionId, callback) {
  83. DeletedSubscription.findOne(
  84. {
  85. 'subscription._id': subscriptionId
  86. },
  87. callback
  88. )
  89. },
  90. _getUserId(user_or_id) {
  91. if (user_or_id != null && user_or_id._id != null) {
  92. return user_or_id._id
  93. } else if (user_or_id != null) {
  94. return user_or_id
  95. }
  96. }
  97. }
  98. SubscriptionLocator.promises = {
  99. getUsersSubscription: promisify(SubscriptionLocator.getUsersSubscription),
  100. findManagedSubscription: promisify(
  101. SubscriptionLocator.findManagedSubscription
  102. ),
  103. getManagedGroupSubscriptions: promisify(
  104. SubscriptionLocator.getManagedGroupSubscriptions
  105. ),
  106. getMemberSubscriptions: promisify(SubscriptionLocator.getMemberSubscriptions),
  107. getSubscription: promisify(SubscriptionLocator.getSubscription),
  108. getSubscriptionByMemberIdAndId: promisify(
  109. SubscriptionLocator.getSubscriptionByMemberIdAndId
  110. ),
  111. getGroupSubscriptionsMemberOf: promisify(
  112. SubscriptionLocator.getGroupSubscriptionsMemberOf
  113. ),
  114. getGroupsWithEmailInvite: promisify(
  115. SubscriptionLocator.getGroupsWithEmailInvite
  116. ),
  117. getGroupWithV1Id: promisify(SubscriptionLocator.getGroupWithV1Id),
  118. getUserDeletedSubscriptions: promisify(
  119. SubscriptionLocator.getUserDeletedSubscriptions
  120. ),
  121. getDeletedSubscription: promisify(SubscriptionLocator.getDeletedSubscription)
  122. }
  123. module.exports = SubscriptionLocator