import { createSequelizeTransactionManager } from "@common/infrastructure"; import { createAuthenticatedUserRepository, createTabContextRepository } from "../infraestructure"; import { createPassportAuthProvider } from "../infraestructure/passport/passport-auth-provider"; import { IAuthProvider } from "./auth-provider.interface"; import { IAuthService } from "./auth-service.interface"; import { AuthService } from "./auth.service"; import { ITabContextService } from "./tab-context-service.interface"; import { TabContextService } from "./tab-context.service"; export * from "./auth-provider.interface"; export * from "./auth-service.interface"; export const createAuthService = (): IAuthService => { const transactionManager = createSequelizeTransactionManager(); const authenticatedUserRepository = createAuthenticatedUserRepository(); const tabContextRepository = createTabContextRepository(); const authProvider: IAuthProvider = createPassportAuthProvider( authenticatedUserRepository, transactionManager ); return new AuthService( authenticatedUserRepository, tabContextRepository, transactionManager, authProvider ); }; export const createTabContextService = (): ITabContextService => { const transactionManager = createSequelizeTransactionManager(); const tabContextRepository = createTabContextRepository(); return new TabContextService(tabContextRepository, transactionManager); };