houdini/app/javascript/legacy/nonprofits/donate/get-params.js

24 lines
662 B
JavaScript
Raw Normal View History

2019-11-06 20:36:28 +00:00
// License: LGPL-3.0-or-later
const R = require('ramda')
const splitParam = str =>
R.split(/[_;,]/, str)
module.exports = params => {
const defaultAmts = '10,25,50,100,250,500,1000'
// Set defaults
const merge = R.merge({
custom_amounts: ''
})
// Preprocess data
const evolve = R.evolve({
multiple_designations: splitParam
, custom_amounts: amts => R.compose(R.map(Number), splitParam)(amts || defaultAmts)
, custom_fields: fields => R.map(f => {
const [name, label] = R.map(R.trim, R.split(':', f))
return {name, label: label ? label : name}
}, R.split(',', fields))
})
return R.compose(evolve, merge)(params)
}