diff --git a/src/public/scripts/geolocation.js b/src/public/scripts/geolocation.js index 7fce450..8dad938 100644 --- a/src/public/scripts/geolocation.js +++ b/src/public/scripts/geolocation.js @@ -5,38 +5,47 @@ function getLocation() { } function update(data) { - document.getElementById("loading").style = "display: none"; - document.getElementById("currencyExchange").style = "display: flex"; - - document.getElementById("yourFlag").src = `/static/svgs/flags/${data.data.country}.svg` - document.getElementById("yourFlag").alt = data.data.country; - document.getElementById("flagTag").innerHTML = `(${data.data.country})`; - - document.getElementById("exchangeFlag").src = `/static/svgs/flags/USD.svg`; - document.getElementById("exchangeFlag").alt = "USD"; - document.getElementById("exFlagTag").innerHTML = "(USD)"; + if (data.data.message != "error") { + document.getElementById("loading").style = "display: none"; + document.getElementById("currencyExchange").style = "display: flex"; - document.getElementById("dropdown-country-button").value = data.data.toCurrencyRates["USD"]; - - updateExchange(document.getElementById("dropdown-country-button").value); - - const dropdown = document.getElementById("dropdown"); - let countries = Object.keys(data.data.toCurrencyRates); - - countries.forEach(item => { - if (dropdown.querySelector(`button[value="${data.data.toCurrencyRates[item]}"]`)) { - return; - } - - const listItem = document.createElement("li"); - listItem.innerHTML = ``; - - dropdown.appendChild(listItem); - }); + document.getElementById("yourFlag").src = `/static/svgs/flags/${data.data.country}.svg` + document.getElementById("yourFlag").alt = data.data.country; + document.getElementById("flagTag").innerHTML = `(${data.data.country})`; + + document.getElementById("exchangeFlag").src = `/static/svgs/flags/USD.svg`; + document.getElementById("exchangeFlag").alt = "USD"; + document.getElementById("exFlagTag").innerHTML = "(USD)"; + + document.getElementById("dropdown-country-button").value = data.data.toCurrencyRates["USD"]; + + updateExchange(document.getElementById("dropdown-country-button").value); + + const dropdown = document.getElementById("dropdown"); + let countries = Object.keys(data.data.toCurrencyRates); + + countries.forEach(item => { + if (dropdown.querySelector(`button[value="${data.data.toCurrencyRates[item]}"]`)) { + return; + } + + const listItem = document.createElement("li"); + listItem.innerHTML = ``; + + dropdown.appendChild(listItem); + }); + } else { + document.getElementById("loading").style = "display: none"; + document.getElementById("exFrom").style = "display: none"; + document.getElementById("dropdown-country-button").style = "display: none"; + document.getElementById("currencyExchange").style = "display: flex"; + document.getElementById("exchange").innerHTML = "Country not supported"; + document.getElementById("exchange").className = "block rounded-lg text-center p-2.5 w-50 z-20 text-sm border bg-gray-700 border-gray-600 placeholder-gray-400 text-white focus:border-blue-500"; + } } function switchButton(clickedButton) { diff --git a/src/router/user.js b/src/router/user.js index e4511ad..3638396 100644 --- a/src/router/user.js +++ b/src/router/user.js @@ -544,11 +544,19 @@ module.exports = (middleware, users, plans, assets) => { country = data.results[0].formatted_address; let results = await getRates(country); - req.session.geoData = { - country: results.abbreviation, - toCurrencyRates: results.exRates, - geoData: req.session.geoData + + if (!results.exRates) { + req.session.geoData = { + message: "error" + } + } else { + req.session.geoData = { + country: results.abbreviation, + toCurrencyRates: results.exRates, + geoData: req.session.geoData + } } + } return res.status(status.Ok).send({ data: req.session.geoData }); diff --git a/src/views/partials/header.ejs b/src/views/partials/header.ejs index 90410ca..43747eb 100644 --- a/src/views/partials/header.ejs +++ b/src/views/partials/header.ejs @@ -17,12 +17,12 @@
+ <% } else if(geoData.message == "error") { %> +error
<% } else { %>