mirror of
https://github.com/samanhappy/mcphub.git
synced 2025-12-24 02:39:19 -05:00
120 lines
3.1 KiB
TypeScript
120 lines
3.1 KiB
TypeScript
import {
|
|
DaoFactory,
|
|
UserDao,
|
|
ServerDao,
|
|
GroupDao,
|
|
SystemConfigDao,
|
|
UserConfigDao,
|
|
OAuthClientDao,
|
|
OAuthTokenDao,
|
|
BearerKeyDao,
|
|
} from './index.js';
|
|
import { UserDaoDbImpl } from './UserDaoDbImpl.js';
|
|
import { ServerDaoDbImpl } from './ServerDaoDbImpl.js';
|
|
import { GroupDaoDbImpl } from './GroupDaoDbImpl.js';
|
|
import { SystemConfigDaoDbImpl } from './SystemConfigDaoDbImpl.js';
|
|
import { UserConfigDaoDbImpl } from './UserConfigDaoDbImpl.js';
|
|
import { OAuthClientDaoDbImpl } from './OAuthClientDaoDbImpl.js';
|
|
import { OAuthTokenDaoDbImpl } from './OAuthTokenDaoDbImpl.js';
|
|
import { BearerKeyDaoDbImpl } from './BearerKeyDaoDbImpl.js';
|
|
|
|
/**
|
|
* Database-backed DAO factory implementation
|
|
*/
|
|
export class DatabaseDaoFactory implements DaoFactory {
|
|
private static instance: DatabaseDaoFactory;
|
|
|
|
private userDao: UserDao | null = null;
|
|
private serverDao: ServerDao | null = null;
|
|
private groupDao: GroupDao | null = null;
|
|
private systemConfigDao: SystemConfigDao | null = null;
|
|
private userConfigDao: UserConfigDao | null = null;
|
|
private oauthClientDao: OAuthClientDao | null = null;
|
|
private oauthTokenDao: OAuthTokenDao | null = null;
|
|
private bearerKeyDao: BearerKeyDao | null = null;
|
|
|
|
/**
|
|
* Get singleton instance
|
|
*/
|
|
public static getInstance(): DatabaseDaoFactory {
|
|
if (!DatabaseDaoFactory.instance) {
|
|
DatabaseDaoFactory.instance = new DatabaseDaoFactory();
|
|
}
|
|
return DatabaseDaoFactory.instance;
|
|
}
|
|
|
|
private constructor() {
|
|
// Private constructor for singleton
|
|
}
|
|
|
|
getUserDao(): UserDao {
|
|
if (!this.userDao) {
|
|
this.userDao = new UserDaoDbImpl();
|
|
}
|
|
return this.userDao!;
|
|
}
|
|
|
|
getServerDao(): ServerDao {
|
|
if (!this.serverDao) {
|
|
this.serverDao = new ServerDaoDbImpl();
|
|
}
|
|
return this.serverDao!;
|
|
}
|
|
|
|
getGroupDao(): GroupDao {
|
|
if (!this.groupDao) {
|
|
this.groupDao = new GroupDaoDbImpl();
|
|
}
|
|
return this.groupDao!;
|
|
}
|
|
|
|
getSystemConfigDao(): SystemConfigDao {
|
|
if (!this.systemConfigDao) {
|
|
this.systemConfigDao = new SystemConfigDaoDbImpl();
|
|
}
|
|
return this.systemConfigDao!;
|
|
}
|
|
|
|
getUserConfigDao(): UserConfigDao {
|
|
if (!this.userConfigDao) {
|
|
this.userConfigDao = new UserConfigDaoDbImpl();
|
|
}
|
|
return this.userConfigDao!;
|
|
}
|
|
|
|
getOAuthClientDao(): OAuthClientDao {
|
|
if (!this.oauthClientDao) {
|
|
this.oauthClientDao = new OAuthClientDaoDbImpl();
|
|
}
|
|
return this.oauthClientDao!;
|
|
}
|
|
|
|
getOAuthTokenDao(): OAuthTokenDao {
|
|
if (!this.oauthTokenDao) {
|
|
this.oauthTokenDao = new OAuthTokenDaoDbImpl();
|
|
}
|
|
return this.oauthTokenDao!;
|
|
}
|
|
|
|
getBearerKeyDao(): BearerKeyDao {
|
|
if (!this.bearerKeyDao) {
|
|
this.bearerKeyDao = new BearerKeyDaoDbImpl();
|
|
}
|
|
return this.bearerKeyDao!;
|
|
}
|
|
|
|
/**
|
|
* Reset all cached DAO instances (useful for testing)
|
|
*/
|
|
public resetInstances(): void {
|
|
this.userDao = null;
|
|
this.serverDao = null;
|
|
this.groupDao = null;
|
|
this.systemConfigDao = null;
|
|
this.userConfigDao = null;
|
|
this.oauthClientDao = null;
|
|
this.oauthTokenDao = null;
|
|
this.bearerKeyDao = null;
|
|
}
|
|
}
|