45 lines
1.5 KiB
TypeScript
45 lines
1.5 KiB
TypeScript
import { userData } from "../Classes/userData.js";
|
|
import { DatabaseController, dbUser } from "../Database/dbcontroller.js";
|
|
|
|
export class userCheckResponse{
|
|
result : userCheckResult
|
|
userData : userData
|
|
|
|
constructor(result : userCheckResult, userData : userData){
|
|
this.result = result;
|
|
this.userData = userData;
|
|
}
|
|
}
|
|
|
|
export enum userCheckResult{
|
|
OK,
|
|
IncorrectPassword,
|
|
NotExist
|
|
}
|
|
|
|
export class users{
|
|
|
|
static async createUser(db: DatabaseController, login : string, password : string){
|
|
await db.run('INSERT INTO users (login, password) VALUES (?, ?)', [login, password]);
|
|
return await this.readUser(db, login, password)
|
|
}
|
|
|
|
static async readUser(db: DatabaseController, login : string, password : string): Promise<userCheckResponse>{
|
|
let user = await db.select<dbUser>(`SELECT * FROM users WHERE login = ? LIMIT 1`, [login])
|
|
if (user.length > 0){
|
|
let row = user[0]
|
|
if (row.password != password){
|
|
return new userCheckResponse(userCheckResult.IncorrectPassword, null)
|
|
}
|
|
return new userCheckResponse(userCheckResult.OK, new userData({...row}))
|
|
}
|
|
else{
|
|
return new userCheckResponse(userCheckResult.NotExist, null)
|
|
}
|
|
}
|
|
|
|
static async readUserID(db: DatabaseController, id : number){
|
|
let user = await db.select<dbUser>(`SELECT * FROM users WHERE id = ?`, [id])
|
|
return user;
|
|
}
|
|
} |