mirror of
https://github.com/overleaf/overleaf.git
synced 2024-10-24 21:12:38 -04:00
38 lines
893 B
JavaScript
38 lines
893 B
JavaScript
|
const { ObjectId } = require('../../../../app/src/infrastructure/mongojs')
|
||
|
const SubscriptionModel = require('../../../../app/src/models/Subscription')
|
||
|
.Subscription
|
||
|
|
||
|
class Subscription {
|
||
|
constructor(options = {}) {
|
||
|
this.overleaf = options.overleaf || {}
|
||
|
this.groupPlan = options.groupPlan
|
||
|
this.manager_ids = []
|
||
|
}
|
||
|
|
||
|
ensureExists(callback) {
|
||
|
if (this._id) {
|
||
|
return callback(null)
|
||
|
}
|
||
|
const options = { upsert: true, new: true, setDefaultsOnInsert: true }
|
||
|
SubscriptionModel.findOneAndUpdate(
|
||
|
{},
|
||
|
this,
|
||
|
options,
|
||
|
(error, subscription) => {
|
||
|
this._id = subscription._id
|
||
|
callback(error)
|
||
|
}
|
||
|
)
|
||
|
}
|
||
|
|
||
|
setManagerIds(managerIds, callback) {
|
||
|
return SubscriptionModel.findOneAndUpdate(
|
||
|
{ _id: ObjectId(this._id) },
|
||
|
{ manager_ids: managerIds },
|
||
|
callback
|
||
|
)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
module.exports = Subscription
|