import { createSequelizeTransactionManager } from "@common/infrastructure"; import { createAuthenticatedUserRepository } 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"; export * from "./auth-provider.interface"; export * from "./auth-service.interface"; export const createAuthService = (): IAuthService => { const transactionManager = createSequelizeTransactionManager(); const authenticatedUserRepository = createAuthenticatedUserRepository(); const authProvider: IAuthProvider = createPassportAuthProvider( authenticatedUserRepository, transactionManager ); return new AuthService(authenticatedUserRepository, transactionManager, authProvider); };