@foxy.io/sdk
Version:
Universal SDK for a full server-side and a limited in-browser access to Foxy hAPI.
22 lines (21 loc) • 761 B
JavaScript
import jsonata from 'jsonata';
/**
* Returns allowed frequencies for given subscription and customer portal settings.
*
* @param opts Subscription and settings.
*/
export function* getAllowedFrequencies(opts) {
const returnedFrequencies = [];
for (const rule of opts.settings.subscriptions.allowFrequencyModification) {
const isRuleApplicable = !!jsonata(rule.jsonataQuery).evaluate(opts.subscription);
if (!isRuleApplicable)
continue;
for (const frequency of rule.values) {
const isFrequencyUnique = !returnedFrequencies.includes(frequency);
if (!isFrequencyUnique)
continue;
returnedFrequencies.push(frequency);
yield frequency;
}
}
}