overleaf/services/web/app/coffee/Features/Subscription/SubscriptionBackgroundTasks.coffee
2014-02-12 10:23:40 +00:00

21 lines
997 B
CoffeeScript

async = require 'async'
logger = require 'logger-sharelatex'
SubscriptionUpdater = require("./SubscriptionUpdater")
SubscriptionLocator = require("./SubscriptionLocator")
AnalyticsManager = require("../Analytics/AnalyticsManager")
module.exports = SubscriptionBackgroundJobs =
# TODO: Remove this one month after the ability to start free trials was removed
downgradeExpiredFreeTrials: (callback = (error, subscriptions)->) ->
SubscriptionLocator.expiredFreeTrials (error, subscriptions) =>
return callback(error) if error?
logger.log total_subscriptions:subscriptions.length, "downgraging subscriptions"
downgrades = []
for subscription in subscriptions
do (subscription) =>
downgrades.push (cb) =>
logger.log subscription: subscription, "downgrading free trial"
AnalyticsManager.trackFreeTrialExpired subscription.admin_id
SubscriptionUpdater.downgradeFreeTrial(subscription, cb)
async.series downgrades, (error) -> callback(error, subscriptions)