in api/v1/src/spots/validateManager.js [210:250]
async function getDynamicSpotOptions(options) {
let definitions = await getSpotOptions(options, true).catch(err => {
console.warn(err.message);
return { success: false, code: 400, errors: [err.message] };
});
var message;
if (definitions.success === false) {
message = `Missing query definitions: ${JSON.stringify(missingParams)}`;
console.warn(message);
return { success: false, code: 400, errors: [message] };
}
let requestDefinition = underscore.findWhere(definitions.data, { dataId: options.dataId });
if (!requestDefinition) {
message = `No valid query parameters: ${JSON.stringify(options)}`;
console.warn(message);
return { success: false, code: 400, errors: [message] };
}
console.log(`Request definition: ${JSON.stringify(requestDefinition)}`);
let allParamsSupplied = true;
let params = {};
let missingParams = [];
requestDefinition.params.forEach((p) => {
let exists = underscore.contains(Object.keys(options.parameters), p.name);
if (!exists) {
missingParams.push(p.name);
allParamsSupplied = false;
}
params[p.name] = options.parameters[p.name];
});
if (!allParamsSupplied) {
message = `Missing params: ${JSON.stringify(missingParams)}`;
console.warn(message);
return { success: false, code: 400, errors: [message] };
}
return { query: requestDefinition.query, params: params };
}