@mono.co/connect-react-native
Version:
Easily add mono connect widget to your react-native app and get access to users' financial data.
37 lines (36 loc) • 1.01 kB
JavaScript
function createUrl(qs) {
let base = "https://connect.mono.co/?";
const valid = validate(qs);
if (valid) {
for (const k in qs) {
const value = typeof (qs[k]) === "object" ? JSON.stringify(qs[k]) : qs[k];
base = base.concat(`${k}=${value}&`);
}
return base.slice(0, -1);
}
throw new Error("Invalid config object");
}
function validate(config) {
switch (config.scope) {
case "payments":
return validatePaymentsData(config.data);
default:
return true;
}
}
function validatePaymentsData(data) {
data = Object.assign({ payment_id: undefined }, data);
const requiredFields = ["payment_id"];
for (let param in data) {
if (requiredFields.includes(param)) {
checkRequiredParam(param, data[param]);
}
}
return true;
}
function checkRequiredParam(name, value) {
if (!value) {
throw new Error(`${name} is required!`);
}
}
export { createUrl };