mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-05-24 17:51:51 +02:00
Script for generating add-on prices (from recurly) (#24051)
* Script for generating addon prices (from recurly) * addon code as param GitOrigin-RevId: b1a45a806c29de56a10532398b56468f9732593f
This commit is contained in:
committed by
Copybot
parent
e44f892cb0
commit
47fb3a644c
55
services/web/scripts/recurly/generate_addon_prices.mjs
Normal file
55
services/web/scripts/recurly/generate_addon_prices.mjs
Normal file
@@ -0,0 +1,55 @@
|
||||
// @ts-check
|
||||
import settings from '@overleaf/settings'
|
||||
import recurly from 'recurly'
|
||||
|
||||
const ADD_ON_CODE = process.argv[2]
|
||||
|
||||
async function main() {
|
||||
if (!ADD_ON_CODE) {
|
||||
console.error('Missing add-on code')
|
||||
console.error(
|
||||
'Usage: node scripts/recurly/generate_addon_prices.mjs ADD_ON_CODE'
|
||||
)
|
||||
process.exit(1)
|
||||
}
|
||||
|
||||
const localizedAddOnsPricing = {}
|
||||
|
||||
const monthlyPlan = await getPlan(ADD_ON_CODE)
|
||||
if (monthlyPlan == null) {
|
||||
console.error(`Monthly plan missing in Recurly: ${ADD_ON_CODE}`)
|
||||
process.exit(1)
|
||||
}
|
||||
for (const { currency, unitAmount } of monthlyPlan.currencies ?? []) {
|
||||
if (!localizedAddOnsPricing[currency]) {
|
||||
localizedAddOnsPricing[currency] = { [ADD_ON_CODE]: {} }
|
||||
}
|
||||
localizedAddOnsPricing[currency][ADD_ON_CODE].monthly = unitAmount
|
||||
}
|
||||
|
||||
const annualPlan = await getPlan(`${ADD_ON_CODE}-annual`)
|
||||
if (annualPlan == null) {
|
||||
console.error(`Annual plan missing in Recurly: ${ADD_ON_CODE}-annual`)
|
||||
process.exit(1)
|
||||
}
|
||||
for (const { currency, unitAmount } of annualPlan.currencies ?? []) {
|
||||
if (!localizedAddOnsPricing[currency]) {
|
||||
localizedAddOnsPricing[currency] = { [ADD_ON_CODE]: {} }
|
||||
}
|
||||
localizedAddOnsPricing[currency][ADD_ON_CODE].annual = unitAmount
|
||||
}
|
||||
|
||||
console.log(JSON.stringify({ localizedAddOnsPricing }, null, 2))
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a plan configuration from Recurly
|
||||
*
|
||||
* @param {string} planCode
|
||||
*/
|
||||
async function getPlan(planCode) {
|
||||
const recurlyClient = new recurly.Client(settings.apis.recurly.apiKey)
|
||||
return await recurlyClient.getPlan(`code-${planCode}`)
|
||||
}
|
||||
|
||||
await main()
|
||||
Reference in New Issue
Block a user