Uecko_ERP/apps/server/src/contexts/auth/application/index.ts

37 lines
1.4 KiB
TypeScript
Raw Normal View History

2025-02-03 13:12:36 +00:00
import { createSequelizeTransactionManager } from "@common/infrastructure";
2025-02-04 18:25:10 +00:00
import { createAuthenticatedUserRepository, createTabContextRepository } from "../infraestructure";
2025-02-03 13:12:36 +00:00
import { createPassportAuthProvider } from "../infraestructure/passport/passport-auth-provider";
import { IAuthProvider } from "./auth-provider.interface";
import { IAuthService } from "./auth-service.interface";
2025-02-01 21:48:13 +00:00
import { AuthService } from "./auth.service";
2025-02-05 20:40:59 +00:00
import { ITabContextService } from "./tab-context-service.interface";
import { TabContextService } from "./tab-context.service";
2025-02-01 21:48:13 +00:00
2025-02-03 13:12:36 +00:00
export * from "./auth-provider.interface";
export * from "./auth-service.interface";
2025-02-01 21:48:13 +00:00
2025-02-03 13:12:36 +00:00
export const createAuthService = (): IAuthService => {
const transactionManager = createSequelizeTransactionManager();
const authenticatedUserRepository = createAuthenticatedUserRepository();
2025-02-04 18:25:10 +00:00
const tabContextRepository = createTabContextRepository();
2025-02-03 18:03:23 +00:00
const authProvider: IAuthProvider = createPassportAuthProvider(
authenticatedUserRepository,
transactionManager
);
2025-02-04 18:25:10 +00:00
return new AuthService(
authenticatedUserRepository,
tabContextRepository,
transactionManager,
authProvider
);
2025-02-03 13:12:36 +00:00
};
2025-02-05 20:40:59 +00:00
export const createTabContextService = (): ITabContextService => {
const transactionManager = createSequelizeTransactionManager();
const tabContextRepository = createTabContextRepository();
return new TabContextService(tabContextRepository, transactionManager);
};