summaryrefslogtreecommitdiff
path: root/db/currencies
diff options
context:
space:
mode:
Diffstat (limited to 'db/currencies')
-rw-r--r--db/currencies/currencies.php42
1 files changed, 42 insertions, 0 deletions
diff --git a/db/currencies/currencies.php b/db/currencies/currencies.php
new file mode 100644
index 0000000..7c8b2ac
--- /dev/null
+++ b/db/currencies/currencies.php
@@ -0,0 +1,42 @@
+<?php
+
+$currencySymbols = [];
+$handle = fopen('https://raw.githubusercontent.com/bengourley/currency-symbol-map/master/map.js', 'r');
+while ($line = fgets($handle)) {
+ preg_match("/(\w+): '(.+)'/", $line, $match);
+
+ if (isset($match[1])) {
+ $currencySymbols[$match[1]] = $match[2];
+ }
+}
+
+$currencyNames = json_decode(file_get_contents('https://openexchangerates.org/api/currencies.json'), true);
+
+$decimals = [
+ 'JPY' => 0,
+];
+
+$currencies = [];
+$apiResponse = json_decode(file_get_contents('https://api.frankfurter.app/latest?base=eur'), true);
+$currencies['last_updated'] = $apiResponse['date'];
+foreach ($apiResponse['rates'] as $code => $rate) {
+ $currencies['map'][$code] = [
+ 'rate' => $rate,
+ 'symbol' => $currencySymbols[$code],
+ 'name' => $currencyNames[$code],
+ 'decimals' => $decimals[$code] ?? 2,
+ ];
+}
+
+// add EUR
+$currencies['map']['EUR'] = [
+ 'rate' => 1,
+ 'symbol' => $currencySymbols['EUR'],
+ 'name' => $currencyNames['EUR'],
+ 'decimals' => 2,
+];
+
+file_put_contents(
+ dirname(__DIR__) . '/_generated/currencies.json',
+ json_encode($currencies)
+);