mirror of
https://github.com/gethomepage/homepage.git
synced 2025-12-06 21:57:48 +01:00
Allow coinmarketcap slugs
This commit is contained in:
@@ -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}`;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user