diff options
| -rw-r--r-- | lib/countries.js | 249 | ||||
| -rw-r--r-- | lib/register.js | 23 |
2 files changed, 257 insertions, 15 deletions
diff --git a/lib/countries.js b/lib/countries.js new file mode 100644 index 00000000..4d5a48dc --- /dev/null +++ b/lib/countries.js @@ -0,0 +1,249 @@ +export default { + AF: "AFG", + AL: "ALB", + DZ: "DZA", + AD: "AND", + AO: "AGO", + AI: "AIA", + AQ: "ATA", + AR: "ARG", + AM: "ARM", + AW: "ABW", + AU: "AUS", + AT: "AUT", + AZ: "AZE", + BS: "BHS", + BH: "BHR", + BD: "BGD", + BB: "BRB", + BY: "BLR", + BE: "BEL", + BZ: "BLZ", + BJ: "BEN", + BM: "BMU", + BT: "BTN", + BO: "BOL", + BW: "BWA", + BV: "NOK", + BR: "BRA", + IO: "USD", + VG: "USD", + BN: "BRN", + BG: "BGR", + BF: "XOF", + BI: "BDI", + KH: "KHM", + CM: "CMR", + CA: "CAN", + IC: "EUR", + CV: "CVE", + KY: "KYD", + CF: "XAF", + TD: "TCD", + CL: "CHL", + CN: "CHN", + CX: "AUD", + CC: "AUD", + CO: "COL", + KM: "COM", + CG: "XAF", + CD: "CDF", + CK: "NZD", + CR: "CRC", + CI: "XOF", + HR: "HRV", + CU: "CUB", + CW: "ANG", + CY: "CYP", + CZ: "CZK", + DK: "DNK", + DJ: "DJI", + DM: "DMA", + DO: "DOP", + TL: "IDS", + EC: "ECU", + EG: "EGY", + SV: "SVC", + GQ: "XAF", + ER: "ERI", + EE: "EST", + ET: "ETH", + FK: "FKP", + FO: "DKK", + FJ: "FJI", + FI: "FIN", + FR: "FRA", + GF: "EUR", + PF: "XPF", + TF: "EUR", + GA: "GAB", + GM: "GMB", + GE: "GEO", + DE: "DEU", + GH: "GHA", + GI: "GIB", + GR: "GRC", + GL: "GRL", + GD: "GRD", + GP: "GLP", + GU: "GUM", + GT: "GTM", + GG: "GGY", + GN: "GIN", + GW: "XOF", + GY: "GUY", + HT: "HTI", + HM: "AUD", + HN: "HND", + HK: "HKD", + HU: "HUN", + IS: "ISL", + IN: "IND", + ID: "IDN", + IR: "IRN", + IQ: "IRQ", + IE: "IRL", + Of: "Man", + IL: "ISR", + IT: "ITA", + JM: "JAM", + JP: "JPN", + JE: "JEY", + JO: "JOR", + KZ: "KAZ", + KE: "KEN", + KI: "KIR", + XK: "XKX", + KW: "KWT", + KG: "KGZ", + LA: "LAO", + LV: "LVA", + LB: "LBN", + LS: "LSO", + LR: "LBR", + LY: "LBY", + LI: "LIE", + LT: "LTU", + LU: "LUX", + MO: "MAC", + MK: "MKD", + MG: "MDG", + MW: "MWI", + MY: "MYS", + MV: "MDV", + ML: "MLI", + MT: "MLT", + MH: "USD", + MQ: "MTQ", + MR: "MRT", + MU: "MUS", + YT: "MYT", + MX: "MEX", + FM: "FSM", + MD: "MDA", + MC: "MCO", + MN: "MNG", + ME: "MNE", + MS: "MSR", + MA: "MAR", + MZ: "MOZ", + MM: "MMR", + NA: "NAM", + NR: "NRU", + NP: "NPL", + NL: "NLD", + AN: "ANG", + NC: "XPF", + NZ: "NZD", + NI: "NIC", + NE: "NER", + NG: "NGA", + NU: "NIU", + NF: "AUD", + KP: "KPW", + MP: "USD", + NO: "NOR", + OM: "OMN", + PK: "PAK", + PW: "PLW", + PS: "PSE", + PA: "PAN", + PG: "PGK", + PY: "PRY", + PE: "PER", + PH: "PHL", + PN: "PCN", + PL: "POL", + PT: "PRT", + PR: "USD", + QA: "QAT", + RE: "REU", + RO: "ROU", + RU: "RUS", + RW: "RWA", + BL: "EUR", + SH: "GPB", + KN: "XCD", + LC: "XCD", + MF: "EUR", + PM: "EUR", + VC: "XCD", + WS: "WSM", + SM: "EUR", + ST: "STN", + SA: "SAR", + SN: "SEN", + RS: "SRB", + CS: "RSD", + SC: "SYC", + SL: "SLL", + SG: "SGP", + SX: "ANG", + SK: "SVK", + SI: "SVN", + SB: "SBD", + SO: "SOM", + ZA: "ZAR", + GS: "GBP", + KR: "KRW", + SS: "SSP", + ES: "ESP", + LK: "LKR", + SD: "SDN", + SR: "SUR", + SJ: "NOK", + SZ: "SWZ", + SE: "SWE", + CH: "CHE", + SY: "SYR", + TW: "TWN", + TJ: "TJK", + TZ: "TZA", + TH: "THA", + TG: "TGO", + TK: "TKL", + TO: "TON", + TT: "TTD", + TA: "SHP", + TN: "TUN", + TR: "TUR", + TM: "TKM", + TC: "USD", + TV: "TUV", + UM: "USD", + VI: "USD", + UG: "UGA", + UA: "UKR", + AE: "AED", + GB: "GBP", + US: "USD", + UY: "URY", + UZ: "UZB", + VU: "VUT", + VA: "VAT", + VE: "VEN", + VN: "VNM", + YE: "YEM", + ZM: "ZMB", + ZW: "ZWE" +}; diff --git a/lib/register.js b/lib/register.js index 60f8825f..6f8f366b 100644 --- a/lib/register.js +++ b/lib/register.js @@ -1,3 +1,4 @@ +import countries from "$lib/countries"; import config from "$config"; import { authenticator } from "otplib"; import db from "$db"; @@ -16,22 +17,14 @@ export default async (user, ip, requireChallenge) => { user.password = await bcrypt.hash(user.password, 1); } - let countries = { - CA: "CAD", - US: "USD", - JP: "JPY", - CN: "CNY", - AU: "AUD", - GB: "GBP" - }; - - if (!config.ipstack || ip.startsWith("127") || ip.startsWith("192")) + if (!config.ipxapi || ip.startsWith("127") || ip.startsWith("192")) { user.currency = "CAD"; - else { - let info = await axios.get( - `http://api.ipstack.com/${ip}?access_key=${config.ipstack}` - ); - user.currency = countries[info.data.country_code] || "USD"; + } else { + let { data } = await axios.get(`https://ipxapi.com/api/ip?ip=${ip}`, { + headers: { authorization: `Bearer ${config.ipxapi}` } + }); + + user.currency = countries[data.countryCode] || "USD"; } user.currencies = [...new Set([user.currency, "CAD", "USD"])]; |
