@foxy.io/sdk
Version:
Universal SDK for a full server-side and a limited in-browser access to Foxy hAPI.
29 lines (28 loc) • 1.1 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getAllowedFrequencies = void 0;
const jsonata_1 = __importDefault(require("jsonata"));
/**
* Returns allowed frequencies for given subscription and customer portal settings.
*
* @param opts Subscription and settings.
*/
function* getAllowedFrequencies(opts) {
const returnedFrequencies = [];
for (const rule of opts.settings.subscriptions.allowFrequencyModification) {
const isRuleApplicable = !!jsonata_1.default(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;
}
}
}
exports.getAllowedFrequencies = getAllowedFrequencies;