From 66208a993ff3cef46221ab378a60d256f2445587 Mon Sep 17 00:00:00 2001 From: Peter C <63091190+petoc@users.noreply.github.com> Date: Mon, 26 Apr 2021 00:59:29 +0200 Subject: [PATCH] Extended Nominatim API endpoint config (#142) Co-authored-by: Peter C (petoc on github) --- dist/config.defaults.js | 6 ++++++ src/lib/api_utils.js | 9 ++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/dist/config.defaults.js b/dist/config.defaults.js index 9ab6f3a..ccbddfc 100644 --- a/dist/config.defaults.js +++ b/dist/config.defaults.js @@ -6,6 +6,12 @@ let Nominatim_Config = { // Where Nominatim API runs. Remember to add port if needed and trailing slash. Nominatim_API_Endpoint: 'http://localhost/nominatim/', + // Additional request headers for Nominatim API. + Nominatim_API_Endpoint_Headers: {}, + + // Additional query parameters for Nominatim API. + Nominatim_API_Endpoint_Params: {}, + // relative path or full URL Images_Base_Url: 'mapicons/', diff --git a/src/lib/api_utils.js b/src/lib/api_utils.js index 9dff877..eb2a549 100644 --- a/src/lib/api_utils.js +++ b/src/lib/api_utils.js @@ -14,7 +14,7 @@ export async function fetch_from_api(endpoint_name, params, callback) { if (endpoint_name !== 'status') last_api_request_url_store.set(null); try { - await fetch(api_url) + await fetch(api_url, { headers: Nominatim_Config.Nominatim_API_Endpoint_Headers || {} }) .then(response => response.json()) .then(data => { if (data.error) { @@ -57,12 +57,19 @@ export async function fetch_content_into_element(url, dom_element) { } function generate_nominatim_api_url(endpoint_name, params) { + extend_parameters(params, Nominatim_Config.Nominatim_API_Endpoint_Params); return Nominatim_Config.Nominatim_API_Endpoint + endpoint_name + '.php?' + Object.keys(clean_up_parameters(params)).map((k) => { return encodeURIComponent(k) + '=' + encodeURIComponent(params[k]); }).join('&'); } +function extend_parameters(params, params2) { + var param_names = Object.keys(params2); + for (var i = 0; i < param_names.length; i += 1) { + params[param_names[i]] = params2[param_names[i]]; + } +} function clean_up_parameters(params) { // `&a=&b=&c=1` => '&c=1' -- 2.39.5