Allow coinmarketcap slugs

This commit is contained in:
shamoon 2023-07-13 21:39:45 -07:00
parent 276edb2069
commit 1e60553904
4 changed files with 40 additions and 19 deletions

View file

@ -22,6 +22,7 @@ export default async function handler(req, res) {
if (widget?.mappings) {
const mapping = widget?.mappings?.[req.query.endpoint];
const mappingParams = mapping?.params;
const optionalParams = mapping?.optionalParams;
const map = mapping?.map;
const endpoint = mapping?.endpoint;
const endpointProxy = mapping?.proxyHandler || serviceProxyHandler;
@ -40,9 +41,17 @@ export default async function handler(req, res) {
req.query.endpoint = formatApiCall(endpoint, segments);
}
if (req.query.query && mappingParams) {
if (req.query.query && (mappingParams || optionalParams)) {
const queryParams = JSON.parse(req.query.query);
const query = new URLSearchParams(mappingParams.map((p) => [p, queryParams[p]]));
let filteredOptionalParams = []
if (optionalParams) filteredOptionalParams = optionalParams.filter(p => queryParams[p] !== undefined);
let params = [];
if (mappingParams) params = params.concat(mappingParams);
if (filteredOptionalParams) params = params.concat(filteredOptionalParams);
const query = new URLSearchParams(params.map((p) => [p, queryParams[p]]));
req.query.endpoint = `${req.query.endpoint}?${query}`;
}