33 lines
1.2 KiB
TypeScript
33 lines
1.2 KiB
TypeScript
import { userData } from "../Classes/userData.js";
|
|
import { characters } from "../Characters/characters.js";
|
|
import { users } from "./users.js";
|
|
import { db } from "../index.js"
|
|
import { Socket } from "socket.io";
|
|
import { loginResponse } from "../Classes/Outgoing/accountResponses.js";
|
|
import { Endpoints } from "../endpoints.js";
|
|
|
|
export async function login(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 user = await users.readUser(db, json.login, json.password);
|
|
|
|
if(user){
|
|
console.log(`User ${user.login} logged in`);
|
|
const character = await characters.readCharacter(db, user.id);
|
|
const result = new loginResponse(user, character)
|
|
|
|
socket.user = user
|
|
socket.character = character
|
|
socket.emit(Endpoints.Login, JSON.stringify(result));
|
|
}
|
|
else{
|
|
console.log(`User ${json.login} did not log in`);
|
|
const result = new loginResponse(null, null)
|
|
socket.emit(Endpoints.Login, JSON.stringify(result));
|
|
}
|
|
} |