| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- // Creates data for groups.json
- const xlsx = require('xlsx')
- const fs = require('fs')
- const path = require('path')
- const [fileName, sheetName] = process.argv.slice(2)
- // Pick the xlsx file
- const filePath = path.resolve(__dirname, fileName)
- const file = xlsx.readFile(filePath)
- if (!file.SheetNames.includes(sheetName)) {
- throw new Error('Sheet not found!')
- }
- const workSheet = Object.values(file.Sheets)[file.SheetNames.indexOf(sheetName)]
- // Convert to JSON
- const workSheetJSON = xlsx.utils.sheet_to_json(workSheet)
- const groupPlans = workSheetJSON.filter(data =>
- data.plan_code.startsWith('group')
- )
- const currencies = [
- 'AUD',
- 'CAD',
- 'CHF',
- 'DKK',
- 'EUR',
- 'GBP',
- 'NOK',
- 'NZD',
- 'SEK',
- 'SGD',
- 'USD',
- ]
- const sizes = ['2', '3', '4', '5', '10', '20', '50']
- const result = {}
- for (const type1 of ['educational', 'enterprise']) {
- result[type1] = {}
- for (const type2 of ['professional', 'collaborator']) {
- result[type1][type2] = {}
- for (const currency of currencies) {
- result[type1][type2][currency] = {}
- for (const size of sizes) {
- const planCode = `group_${type2}_${size}_${type1}`
- const plan = groupPlans.find(data => data.plan_code === planCode)
- if (!plan) throw new Error(`Missing plan: ${planCode}`)
- result[type1][type2][currency][size] = {
- price_in_cents: plan[currency] * 100,
- }
- }
- }
- }
- }
- const output = JSON.stringify(result, null, 2)
- const dir = './output'
- if (!fs.existsSync(dir)) {
- fs.mkdirSync(dir)
- }
- fs.writeFileSync(`${dir}/groups.json`, output)
- console.log('Completed!')
|