|
|
@@ -13,6 +13,11 @@ const UserAuditLogHandler = require('../User/UserAuditLogHandler')
|
|
|
const AccountMappingHelper = require('../Analytics/AccountMappingHelper')
|
|
|
const { SSOConfig } = require('../../models/SSOConfig')
|
|
|
|
|
|
+/**
|
|
|
+ * @typedef {import('../../../../types/subscription/dashboard/subscription').Subscription} Subscription
|
|
|
+ * @typedef {import('../../../../types/subscription/dashboard/subscription').PaymentProvider} PaymentProvider
|
|
|
+ */
|
|
|
+
|
|
|
/**
|
|
|
* Change the admin of the given subscription.
|
|
|
*
|
|
|
@@ -51,7 +56,7 @@ async function syncSubscription(
|
|
|
let subscription =
|
|
|
await SubscriptionLocator.promises.getUsersSubscription(adminUserId)
|
|
|
if (subscription == null) {
|
|
|
- subscription = await _createNewSubscription(adminUserId)
|
|
|
+ subscription = await createNewSubscription(adminUserId)
|
|
|
}
|
|
|
await updateSubscriptionFromRecurly(
|
|
|
recurlySubscription,
|
|
|
@@ -226,7 +231,13 @@ async function createDeletedSubscription(subscription, deleterData) {
|
|
|
await DeletedSubscription.findOneAndUpdate(filter, data, options).exec()
|
|
|
}
|
|
|
|
|
|
-async function _createNewSubscription(adminUserId) {
|
|
|
+/**
|
|
|
+ * Creates a new subscription for the given admin user.
|
|
|
+ *
|
|
|
+ * @param {string} adminUserId
|
|
|
+ * @returns {Promise<Subscription>}
|
|
|
+ */
|
|
|
+async function createNewSubscription(adminUserId) {
|
|
|
const subscription = new Subscription({
|
|
|
admin_id: adminUserId,
|
|
|
manager_ids: [adminUserId],
|
|
|
@@ -242,7 +253,7 @@ async function _deleteAndReplaceSubscriptionFromRecurly(
|
|
|
) {
|
|
|
const adminUserId = subscription.admin_id
|
|
|
await deleteSubscription(subscription, requesterData)
|
|
|
- const newSubscription = await _createNewSubscription(adminUserId)
|
|
|
+ const newSubscription = await createNewSubscription(adminUserId)
|
|
|
await updateSubscriptionFromRecurly(
|
|
|
recurlySubscription,
|
|
|
newSubscription,
|
|
|
@@ -428,6 +439,7 @@ async function _sendSubscriptionEventForAllMembers(subscriptionId, event) {
|
|
|
module.exports = {
|
|
|
updateAdmin: callbackify(updateAdmin),
|
|
|
syncSubscription: callbackify(syncSubscription),
|
|
|
+ createNewSubscription: callbackify(createNewSubscription),
|
|
|
deleteSubscription: callbackify(deleteSubscription),
|
|
|
createDeletedSubscription: callbackify(createDeletedSubscription),
|
|
|
addUserToGroup: callbackify(addUserToGroup),
|
|
|
@@ -440,6 +452,7 @@ module.exports = {
|
|
|
promises: {
|
|
|
updateAdmin,
|
|
|
syncSubscription,
|
|
|
+ createNewSubscription,
|
|
|
addUserToGroup,
|
|
|
refreshUsersFeatures,
|
|
|
removeUserFromGroup,
|