aboutsummaryrefslogtreecommitdiffstats
path: root/users.js
diff options
context:
space:
mode:
Diffstat (limited to 'users.js')
-rw-r--r--users.js28
1 files changed, 23 insertions, 5 deletions
diff --git a/users.js b/users.js
index 8994697d..e9530ecf 100644
--- a/users.js
+++ b/users.js
@@ -66,8 +66,23 @@ module.exports = (addresses, auth, app, bc, db, emit) => {
user.confidential
)).unconfidential;
user.name = user.username;
- user.currency = "USD";
- user.currencies = ["USD"];
+ let ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress;
+ let countries = {
+ CA: "CAD",
+ US: "USD",
+ JP: "JPY",
+ CN: "CNY",
+ AU: "AUD",
+ GB: "GBP",
+ };
+
+ if (ip === "127.0.0.1")
+ user.currency = "CAD";
+ else
+ user.currency = countries[(await axios.get(`http://api.ipstack.com/${ip}?access_key=${config.ipstack}`)).data.country_code] || "EUR";
+
+ user.currencies = [user.currency];
+
addresses[user.address] = user.username;
addresses[user.liquid] = user.username;
user = await db.User.create(user);
@@ -145,10 +160,14 @@ module.exports = (addresses, auth, app, bc, db, emit) => {
where: { username }
});
+ let token;
if (user.username !== username && exists) {
- return res.status(500).send("username taken");
+ return res.status(500).send("Username taken");
} else {
user.username = username;
+ addresses[user.address] = username;
+ token = jwt.sign({ username }, config.jwt);
+ res.cookie("token", token, { expires: new Date(Date.now() + 432000000) });
}
if (email && user.email !== email) {
@@ -167,7 +186,6 @@ module.exports = (addresses, auth, app, bc, db, emit) => {
requestPhone(user);
}
-
user.currencies = currencies;
user.currency = currency;
if (currencies.length) {
@@ -196,7 +214,7 @@ module.exports = (addresses, auth, app, bc, db, emit) => {
await user.save();
emit(user.username, "user", req.user);
- res.send(user);
+ res.send({ user, token });
} catch (e) {
l(e);
}