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

108 lines
4.5 KiB
TypeScript

import { createModule } from '@evyweb/ioctopus';
import { DI_SYMBOLS } from '@/di/types';
import { createPermissionUseCase } from '@/src/application/use-cases/permissions/create-permissions.use-case';
import { getAllPermissionsUseCase } from '@/src/application/use-cases/permissions/get-all-permissions';
import { getPermissionByIdUseCase } from '@/src/application/use-cases/permissions/get-permissions-by-id.use-case';
import { getPermissionByRoleUseCase } from '@/src/application/use-cases/permissions/get-permissions-by-role.use-case';
import { updatePermissionUseCase } from '@/src/application/use-cases/permissions/update-permissions.use-case';
import { deletePermissionUseCase } from '@/src/application/use-cases/permissions/delete-permissions.use-case';
import { createPermissionController } from '@/src/interface-adapters/controllers/permissions/create-permission.controller';
import { getAllPermissionsController } from '@/src/interface-adapters/controllers/permissions/get-all-permission.controller';
import { getPermissionByIdController } from '@/src/interface-adapters/controllers/permissions/get-permission-by-id.controller';
import { getPermissionByRoleController } from '@/src/interface-adapters/controllers/permissions/get-permission-by-role.controller';
import { updatePermissionController } from '@/src/interface-adapters/controllers/permissions/update-permission.controller';
import { deletePermissionController } from '@/src/interface-adapters/controllers/permissions/delete-permission.controller';
export function createPermissionsModule() {
const permissionsModule = createModule();
// Use Cases
permissionsModule
.bind(DI_SYMBOLS.ICreatePermissionUseCase)
.toHigherOrderFunction(createPermissionUseCase, [
DI_SYMBOLS.IInstrumentationService,
DI_SYMBOLS.IPermissionsRepository,
]);
permissionsModule
.bind(DI_SYMBOLS.IGetAllPermissionsUseCase)
.toHigherOrderFunction(getAllPermissionsUseCase, [
DI_SYMBOLS.IInstrumentationService,
DI_SYMBOLS.IPermissionsRepository,
]);
permissionsModule
.bind(DI_SYMBOLS.IGetPermissionByIdUseCase)
.toHigherOrderFunction(getPermissionByIdUseCase, [
DI_SYMBOLS.IInstrumentationService,
DI_SYMBOLS.IPermissionsRepository,
]);
permissionsModule
.bind(DI_SYMBOLS.IGetPermissionByRoleUseCase)
.toHigherOrderFunction(getPermissionByRoleUseCase, [
DI_SYMBOLS.IInstrumentationService,
DI_SYMBOLS.IPermissionsRepository,
]);
permissionsModule
.bind(DI_SYMBOLS.IUpdatePermissionUseCase)
.toHigherOrderFunction(updatePermissionUseCase, [
DI_SYMBOLS.IInstrumentationService,
DI_SYMBOLS.IPermissionsRepository,
]);
permissionsModule
.bind(DI_SYMBOLS.IDeletePermissionUseCase)
.toHigherOrderFunction(deletePermissionUseCase, [
DI_SYMBOLS.IInstrumentationService,
DI_SYMBOLS.IPermissionsRepository,
]);
// Controllers
permissionsModule
.bind(DI_SYMBOLS.ICreatePermissionController)
.toHigherOrderFunction(createPermissionController, [
DI_SYMBOLS.IInstrumentationService,
DI_SYMBOLS.ICreatePermissionUseCase,
]);
permissionsModule
.bind(DI_SYMBOLS.IGetAllPermissionsController)
.toHigherOrderFunction(getAllPermissionsController, [
DI_SYMBOLS.IInstrumentationService,
DI_SYMBOLS.IGetAllPermissionsUseCase,
]);
permissionsModule
.bind(DI_SYMBOLS.IGetPermissionByIdController)
.toHigherOrderFunction(getPermissionByIdController, [
DI_SYMBOLS.IInstrumentationService,
DI_SYMBOLS.IGetPermissionByIdUseCase,
]);
permissionsModule
.bind(DI_SYMBOLS.IGetPermissionByRoleController)
.toHigherOrderFunction(getPermissionByRoleController, [
DI_SYMBOLS.IInstrumentationService,
DI_SYMBOLS.IGetPermissionByRoleUseCase,
]);
permissionsModule
.bind(DI_SYMBOLS.IUpdatePermissionController)
.toHigherOrderFunction(updatePermissionController, [
DI_SYMBOLS.IInstrumentationService,
DI_SYMBOLS.IUpdatePermissionUseCase,
]);
permissionsModule
.bind(DI_SYMBOLS.IDeletePermissionController)
.toHigherOrderFunction(deletePermissionController, [
DI_SYMBOLS.IInstrumentationService,
DI_SYMBOLS.IDeletePermissionUseCase,
]);
return permissionsModule;
}