From 85da2dbdc63edcbedb3c7ca76e39b8198ba33260 Mon Sep 17 00:00:00 2001 From: Christian Risi <75698846+CnF-Gris@users.noreply.github.com> Date: Sun, 29 Jun 2025 11:01:31 +0000 Subject: [PATCH] Changes to support Sessions better --- src/lib/classes/users.ts | 18 +++++++++--------- src/lib/db-utils/SQL/Users.sql | 2 +- src/lib/db-utils/Users.ts | 9 +++++---- 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/src/lib/classes/users.ts b/src/lib/classes/users.ts index 5cebc5d..2cebe68 100644 --- a/src/lib/classes/users.ts +++ b/src/lib/classes/users.ts @@ -4,7 +4,7 @@ export interface IUserBroker { createUser(username: string, password: string): Promise getUser(username: string, password: string): Promise updatePassword(username: string, password: string, newPassword: string): Promise - getUserFromSession(session: string): User + getUserFromSession(sessionID: number): User @@ -45,24 +45,24 @@ export class UserApp { } - public static getUserFromSession(session: string): User { + public static getUserFromSession(sessionID: number): User { UserApp.assertInitialized() - return UserApp.broker.getUserFromSession(session) + return UserApp.broker.getUserFromSession(sessionID) } - public static createUser(username: string, password: string) { + public static async createUser(username: string, password: string): Promise { UserApp.assertInitialized() - return UserApp.broker.createUser(username, password) + return await UserApp.broker.createUser(username, password) } - public static getUser(username: string, password: string): User { + public static async getUser(username: string, password: string): Promise { UserApp.assertInitialized() - return UserApp.broker.getUser(username, password) + return await UserApp.broker.getUser(username, password) } - public static updatePassword(username: string, password: string, newPassword: string) { + public static async updatePassword(username: string, password: string, newPassword: string) { UserApp.assertInitialized() - return UserApp.broker.updatePassword(username, password, newPassword) + return await UserApp.broker.updatePassword(username, password, newPassword) } diff --git a/src/lib/db-utils/SQL/Users.sql b/src/lib/db-utils/SQL/Users.sql index a9bd8bf..355bd6a 100644 --- a/src/lib/db-utils/SQL/Users.sql +++ b/src/lib/db-utils/SQL/Users.sql @@ -1,5 +1,5 @@ CREATE TABLE IF NOT EXISTS users ( - user_id INTEGER PRIMARY KEY, + user_id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT UNIQUE NOT NULL , password_hash TEXT NOT NULL ); diff --git a/src/lib/db-utils/Users.ts b/src/lib/db-utils/Users.ts index 92cf3d5..063e5c6 100644 --- a/src/lib/db-utils/Users.ts +++ b/src/lib/db-utils/Users.ts @@ -18,13 +18,14 @@ class UserDB { this.username = username this.password_hash = password_hash } -} +} + export class UserDBBroker implements IUserBroker { private static initialized = false constructor() { - if (UserDB.initialized) { + if (UserDBBroker.initialized) { // UGLY: make more specific throw Error("UserDB has been already initialized") } @@ -35,7 +36,7 @@ export class UserDBBroker implements IUserBroker { const stmt = SSLSnifferApp.prepare( ` CREATE TABLE IF NOT EXISTS users ( - user_id INTEGER PRIMARY KEY, + user_id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT UNIQUE NOT NULL , password_hash TEXT NOT NULL ); @@ -138,7 +139,7 @@ export class UserDBBroker implements IUserBroker { } // TODO: implement this - public getUserFromSession(session: string): User { + public getUserFromSession(sessionID: number): User { throw new Error("Method not implemented."); }