| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- 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,
- plan_interval_unit: 'months',
- tax_code: 'digital'
- }
- 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
|