MIF_E31221222/sigap-website/di/modules/roles.module.ts

76 lines
2.7 KiB
TypeScript

import { createModule } from '@evyweb/ioctopus';
import { DI_SYMBOLS } from '@/di/types';
import { createRoleUseCase } from '@/src/application/use-cases/roles/create-role.use-case';
import { getRoleByIdUseCase } from '@/src/application/use-cases/roles/get-role-by-id.use-case';
import { updateRoleUseCase } from '@/src/application/use-cases/roles/update-role.use-case';
import { deleteRoleUseCase } from '@/src/application/use-cases/roles/delete-role.use-case';
import { createRoleController } from '@/src/interface-adapters/controllers/roles/create-role.controller';
import { getRoleByIdController } from '@/src/interface-adapters/controllers/roles/get-role-by-id.controller';
import { updateRoleController } from '@/src/interface-adapters/controllers/roles/update-role.controller';
import { deleteRoleController } from '@/src/interface-adapters/controllers/roles/delete-role.controller';
export function createRolesModule() {
const rolesModule = createModule();
// Use Cases
rolesModule
.bind(DI_SYMBOLS.ICreateRoleUseCase)
.toHigherOrderFunction(createRoleUseCase, [
DI_SYMBOLS.IInstrumentationService,
DI_SYMBOLS.IRolesRepository,
]);
rolesModule
.bind(DI_SYMBOLS.IGetRoleByIdUseCase)
.toHigherOrderFunction(getRoleByIdUseCase, [
DI_SYMBOLS.IInstrumentationService,
DI_SYMBOLS.IRolesRepository,
]);
rolesModule
.bind(DI_SYMBOLS.IUpdateRoleUseCase)
.toHigherOrderFunction(updateRoleUseCase, [
DI_SYMBOLS.IInstrumentationService,
DI_SYMBOLS.IRolesRepository,
]);
rolesModule
.bind(DI_SYMBOLS.IDeleteRoleUseCase)
.toHigherOrderFunction(deleteRoleUseCase, [
DI_SYMBOLS.IInstrumentationService,
DI_SYMBOLS.IRolesRepository,
]);
// Controllers
rolesModule
.bind(DI_SYMBOLS.ICreateRoleController)
.toHigherOrderFunction(createRoleController, [
DI_SYMBOLS.IInstrumentationService,
DI_SYMBOLS.ICreateRoleUseCase,
]);
rolesModule
.bind(DI_SYMBOLS.IGetRoleByIdController)
.toHigherOrderFunction(getRoleByIdController, [
DI_SYMBOLS.IInstrumentationService,
DI_SYMBOLS.IGetRoleByIdUseCase,
]);
rolesModule
.bind(DI_SYMBOLS.IUpdateRoleController)
.toHigherOrderFunction(updateRoleController, [
DI_SYMBOLS.IInstrumentationService,
DI_SYMBOLS.IUpdateRoleUseCase,
]);
rolesModule
.bind(DI_SYMBOLS.IDeleteRoleController)
.toHigherOrderFunction(deleteRoleController, [
DI_SYMBOLS.IInstrumentationService,
DI_SYMBOLS.IDeleteRoleUseCase,
]);
return rolesModule;
}