import { userData } from "../Classes/userData.js"; import { userCheckResult, users } from "./users.js"; import { db } from "../index.js" import { Socket } from "socket.io"; import { loginResponse, loginResult } from "../Classes/Outgoing/accountResponses.js"; import { Endpoints } from "../endpoints.js"; import { characters } from "../Characters/characters.js"; export async function register(socket : Socket, data){ let buff = Buffer.from(data, 'base64'); let json : userData = JSON.parse(buff.toString('utf-8')); if (!json.login || !json.password){ console.log("login or password is missing") return } const checkExisting = await users.readUser(db, json.login, null) if(checkExisting.result != userCheckResult.NotExist){ const result = new loginResponse(loginResult.accountExists, null, null) socket.emit(Endpoints.Register, JSON.stringify(result)) return } const user = (await users.createUser(db, json.login, json.password)).userData; if(user){ console.log(`User ${user.login} registered`); const character = await characters.createCharacter(db, user.id); const result = new loginResponse(loginResult.success, user, character) socket.user = user socket.character = character socket.emit(Endpoints.Register, JSON.stringify(result)) } else{ console.log(`User failed to register`); const result = new loginResponse(loginResult.fail, null, null) socket.emit(Endpoints.Register, JSON.stringify(result)) } }