mirror of https://github.com/wg-easy/wg-easy
9 changed files with 82 additions and 59 deletions
@ -1,10 +1,7 @@ |
|||
export default defineEventHandler(async (event) => { |
|||
setHeader(event, 'Content-Type', 'application/json'); |
|||
|
|||
const system = await InMemory.getSystem(); |
|||
if (system) { |
|||
const { lang } = system; |
|||
return lang; |
|||
} |
|||
return 'en'; |
|||
const provider = InMemory; // TODO multiple provider
|
|||
const lang = await SystemRepository.getLang(provider); |
|||
return lang; |
|||
}); |
|||
|
@ -1,14 +0,0 @@ |
|||
import type { Undefined } from '../database'; |
|||
import type System from '../entities/system'; |
|||
|
|||
/** |
|||
* Abstract class for system-related database operations. |
|||
* This class provides a method for retrieving system configuration data from the database. |
|||
*/ |
|||
export default abstract class SystemRepository { |
|||
/** |
|||
* Retrieves system data from the database. |
|||
* @returns {Promise<System | Undefined>} The system data or null if not found. |
|||
*/ |
|||
abstract getSystem(): Promise<System | Undefined>; |
|||
} |
@ -1,24 +0,0 @@ |
|||
import type User from '../entities/user'; |
|||
import type { Identity, Undefined } from '../database'; |
|||
|
|||
/** |
|||
* Abstract class for user-related database operations. |
|||
* This class provides methods for retrieving and saving user data. |
|||
*/ |
|||
export default abstract class UserRepository { |
|||
/** |
|||
* Retrieves a user by their ID or by User structure from the database. |
|||
* @param {Identity<User>} id - The ID of the user or a user. |
|||
* @returns {Promise<User | Undefined>} The user data or null if not found. |
|||
*/ |
|||
abstract getUser(id: Identity<User>): Promise<User | Undefined>; |
|||
|
|||
/** |
|||
* Creates or Updates a user in the database. |
|||
* @param {User} user - The user to be saved. |
|||
* |
|||
* **Note:** If the user already exists, this method will update their details. |
|||
* If the user does not exist, it will create a new user entry. |
|||
*/ |
|||
abstract saveUser(user: User): Promise<void>; |
|||
} |
@ -1,17 +1,12 @@ |
|||
import InMemoryDP from '@/server/databases/providers/inmemory'; |
|||
|
|||
const provider = new InMemoryDP(); // TODO manage multiple providers
|
|||
const provider = new InMemoryDP(); // TODO multiple providers
|
|||
|
|||
provider.connect().catch((err) => { |
|||
console.error(err); |
|||
provider |
|||
.disconnect() |
|||
.catch((err) => { |
|||
console.error(err); |
|||
}) |
|||
.finally(() => { |
|||
process.exit(1); |
|||
}); |
|||
provider.disconnect().catch((err) => { |
|||
console.error(err); |
|||
}); |
|||
}); |
|||
|
|||
export default provider; |
|||
|
@ -0,0 +1,14 @@ |
|||
import type { Lang, SystemProvider } from '@/server/databases/entities/system'; |
|||
|
|||
class SystemRepository { |
|||
async getLang(provider: SystemProvider): Promise<Lang> { |
|||
const _system = await provider.getSystem(); |
|||
if (_system) { |
|||
const { lang } = _system; |
|||
return lang; |
|||
} |
|||
return 'en'; |
|||
} |
|||
} |
|||
|
|||
export default new SystemRepository(); |
@ -0,0 +1,11 @@ |
|||
import type User from '@/server/databases/entities/user'; |
|||
import type { UserProvider } from '@/server/databases/entities/user'; |
|||
import type { Undefined } from '@/server/databases/database'; |
|||
|
|||
class UserRepository { |
|||
newUser(db: UserProvider): Promise<User | Undefined> { |
|||
return db.getUser(''); |
|||
} |
|||
} |
|||
|
|||
export default new UserRepository(); |
Loading…
Reference in new issue