76 lines
2.7 KiB
TypeScript
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;
|
|
}
|