45 lines
2.1 KiB
JavaScript
45 lines
2.1 KiB
JavaScript
/**
|
|
* @function convertCurrency
|
|
* @description Convertis une valeur dans une devise dans une autre devise grâce à l'API exchangeratesapi.io.
|
|
* @requires {@link fonctions_annexes.js: formatNumberResult}
|
|
* @requires {@link variables.js: correspondancesMonnaie}
|
|
* @see {@link https://jquery.com/} Requête en AJAX avec jQuery
|
|
* @see {@link https://api.exchangeratesapi.io/} API de taux de change
|
|
* @param {number} value - la valeur à convertir
|
|
* @param {string} currency - la devise à avoir après conversion
|
|
* @param {string} url - l'url de la requête à l'API en fonction du paramètre dans l'url '?base='
|
|
* @example convertCurrency(50, "$ Américain", "https://api.exchangeratesapi.io/latest?base=EUR")
|
|
* Ajoute au DOM de la page dans la div .results et .rateDate :
|
|
* 50 EUR = 55.17 $ Américain
|
|
* Dernier rafraîchissement du taux d'échange : 08/11/2019
|
|
*/
|
|
function convertCurrency(value, currency, url) {
|
|
function currencyTest(currencyToTest) {
|
|
for (let index in correspondancesMonnaie) {
|
|
if(currencyToTest === correspondancesMonnaie[index]['currency']) {
|
|
return correspondancesMonnaie[index]['symbol'];
|
|
}
|
|
continue;
|
|
}
|
|
}
|
|
$.ajax({
|
|
url : url,
|
|
dataType : "json",
|
|
success: function (jsonFixer) {
|
|
try {
|
|
let currencySymboleAPI = eval(`jsonFixer.rates.${currencyTest(currency)}`);
|
|
if (currencySymboleAPI === undefined) {
|
|
currencySymboleAPI = 1;
|
|
}
|
|
$('.results').html(formatNumberResult(value) + ' ' + jsonFixer.base + ' = ' + formatNumberResult((currencySymboleAPI * value).toFixed(2)) + ' ' + currency);
|
|
$('.rateDate').html(`Dernier rafraîchissement du taux d'échange : ${jsonFixer.date[8] + jsonFixer.date[9]}/${jsonFixer.date[5] + jsonFixer.date[6]}/${jsonFixer.date[0] + jsonFixer.date[1] + jsonFixer.date[2] + jsonFixer.date[3]}`);
|
|
}
|
|
catch (error) {
|
|
$('.results').html(messageError);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
/* Exports */
|
|
export { convertCurrency }; |