This repository has been archived on 2024-10-29. You can view files and clone it, but cannot push or open issues or pull requests.
FunctionProject/scripts/functions/fonctions_principales/convertCurrency_Function.js

48 lines
2.2 KiB
JavaScript

import { formatNumberResult } from '../fonctions_annexes/formatNumberResult_Function.js';
import { correspondancesMonnaie } from '../../variables/currencyReference.js';
/**
* @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 };