aboutsummaryrefslogtreecommitdiffstats
path: root/lib/register.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2023-01-11 22:09:48 -0800
committerAdam Soltys <[email protected]>2023-01-12 15:44:13 -0800
commitc3565838644123e77881ff4f8536792f074047b9 (patch)
tree96da43fd19940d2f0836e43a511f0a1fb365044d /lib/register.js
parentded2c69ce89438326523a512b570be6eee4b23f0 (diff)
downloadcoinos-server-c3565838644123e77881ff4f8536792f074047b9.tar.gz
coinos-server-c3565838644123e77881ff4f8536792f074047b9.zip
migrating to redis
Diffstat (limited to 'lib/register.js')
-rw-r--r--lib/register.js33
1 files changed, 25 insertions, 8 deletions
diff --git a/lib/register.js b/lib/register.js
index fd6f27ae..9f18c15e 100644
--- a/lib/register.js
+++ b/lib/register.js
@@ -4,10 +4,12 @@ import { authenticator } from "otplib";
import bcrypt from "bcrypt";
import { l } from "$lib/logging";
import { v4 } from "uuid";
-import redis from "$lib/redis";
+import { s, g } from "$lib/redis";
+import { got } from "got";
export default async (user, ip, requireChallenge) => {
let { password, username } = user;
+ l("registering", username);
if (!username) throw new Error("Username required");
@@ -15,26 +17,35 @@ export default async (user, ip, requireChallenge) => {
let uuid = v4();
user.uuid = uuid;
- let exists = await redis.get(`user:${username}`);
+ let exists = await g(`user:${username}`);
if (exists) throw new Error(`Username ${username} taken`);
if (password) {
user.password = await bcrypt.hash(password, 1);
}
+ console.log("BOO");
+
if (!config.ipxapi || ip.startsWith("127") || ip.startsWith("192")) {
user.currency = "CAD";
} else {
- let { countryCode } = await got(`https://ipxapi.com/api/ip?ip=${ip}`, {
- headers: { authorization: `Bearer ${config.ipxapi}` }
- }).json();
+ let countryCode = "US";
+ try {
+ let r = await got(`https://ipxapi.com/api/ip?ip=${ip}`, {
+ headers: { authorization: `Bearer ${config.ipxapi}` }
+ }).json();
+ if (r.success) ({ countryCode } = r);
+ } catch (e) {
+ console.log(e);
+ }
- user.currency = countries[countryCode] || "USD";
+ user.currency = countries[countryCode];
}
user.currencies = [...new Set([user.currency, "CAD", "USD"])];
user.fiat = false;
user.otpsecret = authenticator.generateSecret();
+ user.balance = 0;
let d = ip.split(".");
ip = ((+d[0] * 256 + +d[1]) * 256 + +d[2]) * 256 + +d[3];
@@ -42,8 +53,14 @@ export default async (user, ip, requireChallenge) => {
user.ip = ip;
}
- await redis.set(`user:${user.uuid}`, user);
- await redis.set(`user:${user.username}`, user);
+ console.log("user uuid", user.uuid, user.username);
+
+ try {
+ await s(`user:${user.uuid}`, user);
+ await s(`user:${user.username}`, user);
+ } catch (e) {
+ console.log("HUH", e);
+ }
l("new user", user.username);
return user;
};