2018-11-13 13:35:50 +00:00
|
|
|
require 'rubygems'
|
|
|
|
require 'recurly'
|
|
|
|
require 'json'
|
|
|
|
|
|
|
|
if ENV['RECURLY_SUBDOMAIN']
|
|
|
|
Recurly.subdomain = ENV['RECURLY_SUBDOMAIN']
|
|
|
|
else
|
|
|
|
print "Defaulting to sharelatex-sandbox. Set RECURLY_SUBDOMAIN environment variable to override\n"
|
|
|
|
Recurly.subdomain = "sharelatex-sandbox"
|
|
|
|
end
|
|
|
|
|
|
|
|
if ENV['RECURLY_API_KEY']
|
|
|
|
Recurly.api_key = ENV['RECURLY_API_KEY']
|
|
|
|
else
|
|
|
|
print "Please set RECURLY_API_KEY environment variable\n"
|
|
|
|
exit 1
|
|
|
|
end
|
|
|
|
|
|
|
|
file = File.read('../../app/templates/plans/groups.json')
|
|
|
|
groups = JSON.parse(file)
|
|
|
|
# data format: groups[usage][plan_code][currency][size] = price
|
|
|
|
|
|
|
|
PLANS = {}
|
|
|
|
groups.each do |usage, data|
|
|
|
|
data.each do |plan_code, data|
|
|
|
|
data.each do |currency, data|
|
|
|
|
data.each do |size, price|
|
|
|
|
full_plan_code = "group_#{plan_code}_#{size}_#{usage}"
|
|
|
|
plan = PLANS[full_plan_code] ||= {
|
|
|
|
plan_code: full_plan_code,
|
|
|
|
name: "Overleaf #{plan_code.capitalize} - Group Account (#{size} licenses) - #{usage.capitalize}",
|
|
|
|
unit_amount_in_cents: {},
|
|
|
|
plan_interval_length: 12,
|
2018-11-13 14:46:10 +00:00
|
|
|
plan_interval_unit: 'months',
|
|
|
|
tax_code: 'digital'
|
2018-11-13 13:35:50 +00:00
|
|
|
}
|
|
|
|
plan[:unit_amount_in_cents][currency] = price * 100
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
PLANS.each do |plan_code, plan|
|
|
|
|
print "Syncing #{plan_code}...\n"
|
|
|
|
print "#{plan}\n"
|
|
|
|
begin
|
|
|
|
recurly_plan = Recurly::Plan.find(plan_code)
|
|
|
|
rescue Recurly::Resource::NotFound => e
|
|
|
|
recurly_plan = nil
|
|
|
|
end
|
|
|
|
|
|
|
|
if recurly_plan.nil?
|
|
|
|
print "No plan found, creating...\n"
|
|
|
|
Recurly::Plan.create(plan)
|
|
|
|
else
|
|
|
|
print "Existing plan found, updating...\n"
|
|
|
|
plan.each do |key, value|
|
|
|
|
recurly_plan[key] = value
|
|
|
|
recurly_plan.save
|
|
|
|
end
|
|
|
|
end
|
|
|
|
print "Done!\n"
|
|
|
|
end
|