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) => { |
export default defineEventHandler(async (event) => { |
||||
setHeader(event, 'Content-Type', 'application/json'); |
setHeader(event, 'Content-Type', 'application/json'); |
||||
|
|
||||
const system = await InMemory.getSystem(); |
const provider = InMemory; // TODO multiple provider
|
||||
if (system) { |
const lang = await SystemRepository.getLang(provider); |
||||
const { lang } = system; |
return lang; |
||||
return lang; |
|
||||
} |
|
||||
return 'en'; |
|
||||
}); |
}); |
||||
|
@ -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'; |
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) => { |
provider.connect().catch((err) => { |
||||
console.error(err); |
console.error(err); |
||||
provider |
provider.disconnect().catch((err) => { |
||||
.disconnect() |
console.error(err); |
||||
.catch((err) => { |
}); |
||||
console.error(err); |
|
||||
}) |
|
||||
.finally(() => { |
|
||||
process.exit(1); |
|
||||
}); |
|
||||
}); |
}); |
||||
|
|
||||
export default provider; |
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