diff --git a/src/app/(routes)/ledgers/[id]/assets/assets-sheet.tsx b/src/app/(routes)/ledgers/[id]/assets/assets-sheet.tsx index 6406d46f..9f5b8af1 100644 --- a/src/app/(routes)/ledgers/[id]/assets/assets-sheet.tsx +++ b/src/app/(routes)/ledgers/[id]/assets/assets-sheet.tsx @@ -163,7 +163,7 @@ export const AssetsSheet = ({ React.useEffect(() => { if (mode === 'edit' && !isNil(data)) { - setMetadataEnabled(Object.entries(data.metadata).length > 0) + setMetadataEnabled(Object.entries(data.metadata ?? {}).length > 0) form.reset(data, { keepDefaultValues: true }) } else { setMetadataEnabled(false) diff --git a/src/app/api/organizations/[id]/ledgers/[ledgerId]/assets/[assetId]/route.ts b/src/app/api/organizations/[id]/ledgers/[ledgerId]/assets/[assetId]/route.ts index 6314d238..d2709089 100644 --- a/src/app/api/organizations/[id]/ledgers/[ledgerId]/assets/[assetId]/route.ts +++ b/src/app/api/organizations/[id]/ledgers/[ledgerId]/assets/[assetId]/route.ts @@ -1,24 +1,26 @@ +import { container } from '@/core/infrastructure/container-registry/container-registry' import { apiErrorHandler } from '@/app/api/utils/api-error-handler' -import { DeleteAsset } from '@/core/application/use-cases/assets/delete-asset-use-case' -import { FetchAssetById } from '@/core/application/use-cases/assets/fetch-asset-by-id-use-case' -import { UpdateAsset } from '@/core/application/use-cases/assets/update-asset-use-case' import { - container, - Registry -} from '@/core/infrastructure/container-registry/container-registry' + DeleteAsset, + DeleteAssetUseCase +} from '@/core/application/use-cases/assets/delete-asset-use-case' +import { + FetchAssetById, + FetchAssetByIdUseCase +} from '@/core/application/use-cases/assets/fetch-asset-by-id-use-case' +import { + UpdateAsset, + UpdateAssetUseCase +} from '@/core/application/use-cases/assets/update-asset-use-case' import { NextResponse } from 'next/server' const fetchAssetByIdUseCase: FetchAssetById = container.get( - Registry.FetchAssetByIdUseCase + FetchAssetByIdUseCase ) -const updateAssetUseCase = container.get( - Registry.UpdateAssetUseCase -) +const updateAssetUseCase = container.get(UpdateAssetUseCase) -const deleteAssetUseCase = container.get( - Registry.DeleteAssetUseCase -) +const deleteAssetUseCase = container.get(DeleteAssetUseCase) export async function GET( request: Request, diff --git a/src/app/api/organizations/[id]/ledgers/[ledgerId]/assets/route.ts b/src/app/api/organizations/[id]/ledgers/[ledgerId]/assets/route.ts index c2cb106e..642edec3 100644 --- a/src/app/api/organizations/[id]/ledgers/[ledgerId]/assets/route.ts +++ b/src/app/api/organizations/[id]/ledgers/[ledgerId]/assets/route.ts @@ -1,18 +1,20 @@ +import { container } from '@/core/infrastructure/container-registry/container-registry' import { apiErrorHandler } from '@/app/api/utils/api-error-handler' -import { CreateAsset } from '@/core/application/use-cases/assets/create-asset-use-case' -import { FetchAllAssets } from '@/core/application/use-cases/assets/fetch-all-assets-use-case' import { - container, - Registry -} from '@/core/infrastructure/container-registry/container-registry' + CreateAsset, + CreateAssetUseCase +} from '@/core/application/use-cases/assets/create-asset-use-case' +import { + FetchAllAssets, + FetchAllAssetsUseCase +} from '@/core/application/use-cases/assets/fetch-all-assets-use-case' import { NextResponse } from 'next/server' -const createAssetUseCase: CreateAsset = container.get( - Registry.CreateAssetUseCase -) +const createAssetUseCase: CreateAsset = + container.get(CreateAssetUseCase) const fetchAllAssetsUseCase: FetchAllAssets = container.get( - Registry.FetchAllAssetsUseCase + FetchAllAssetsUseCase ) export async function POST( diff --git a/src/core/application/use-cases/assets/create-asset-use-case.ts b/src/core/application/use-cases/assets/create-asset-use-case.ts index 70d0a138..062fe865 100644 --- a/src/core/application/use-cases/assets/create-asset-use-case.ts +++ b/src/core/application/use-cases/assets/create-asset-use-case.ts @@ -3,6 +3,7 @@ import { AssetResponseDto } from '../../dto/asset-response-dto' import { CreateAssetRepository } from '@/core/domain/repositories/assets/create-asset-repository' import { assetDtoToEntity, assetEntityToDto } from '../../mappers/asset-mapper' import { CreateAssetDto } from '../../dto/create-asset-dto' +import { inject, injectable } from 'inversify' export interface CreateAsset { execute: ( @@ -12,8 +13,12 @@ export interface CreateAsset { ) => Promise } +@injectable() export class CreateAssetUseCase implements CreateAsset { - constructor(private readonly createAssetRepository: CreateAssetRepository) {} + constructor( + @inject(CreateAssetRepository) + private readonly createAssetRepository: CreateAssetRepository + ) {} async execute( organizationId: string, diff --git a/src/core/application/use-cases/assets/delete-asset-use-case.ts b/src/core/application/use-cases/assets/delete-asset-use-case.ts index 0ce87547..82fb808f 100644 --- a/src/core/application/use-cases/assets/delete-asset-use-case.ts +++ b/src/core/application/use-cases/assets/delete-asset-use-case.ts @@ -1,4 +1,5 @@ import { DeleteAssetRepository } from '@/core/domain/repositories/assets/delete-asset-repository' +import { inject, injectable } from 'inversify' export interface DeleteAsset { execute: ( @@ -8,8 +9,12 @@ export interface DeleteAsset { ) => Promise } +@injectable() export class DeleteAssetUseCase implements DeleteAsset { - constructor(private readonly deleteAssetRepository: DeleteAssetRepository) {} + constructor( + @inject(DeleteAssetRepository) + private readonly deleteAssetRepository: DeleteAssetRepository + ) {} async execute( organizationId: string, diff --git a/src/core/application/use-cases/assets/fetch-all-assets-use-case.ts b/src/core/application/use-cases/assets/fetch-all-assets-use-case.ts index f57bb021..4292990b 100644 --- a/src/core/application/use-cases/assets/fetch-all-assets-use-case.ts +++ b/src/core/application/use-cases/assets/fetch-all-assets-use-case.ts @@ -4,6 +4,7 @@ import { PaginationDto } from '../../dto/pagination-dto' import { AssetEntity } from '@/core/domain/entities/asset-entity' import { PaginationEntity } from '@/core/domain/entities/pagination-entity' import { assetEntityToDto } from '../../mappers/asset-mapper' +import { inject, injectable } from 'inversify' export interface FetchAllAssets { execute: ( @@ -17,8 +18,10 @@ export interface FetchAllAssets { ) => Promise> } +@injectable() export class FetchAllAssetsUseCase implements FetchAllAssets { constructor( + @inject(FetchAllAssetsRepository) private readonly fetchAllAssetsRepository: FetchAllAssetsRepository ) {} diff --git a/src/core/application/use-cases/assets/fetch-asset-by-id-use-case.ts b/src/core/application/use-cases/assets/fetch-asset-by-id-use-case.ts index 035eb318..e95bcf45 100644 --- a/src/core/application/use-cases/assets/fetch-asset-by-id-use-case.ts +++ b/src/core/application/use-cases/assets/fetch-asset-by-id-use-case.ts @@ -1,6 +1,7 @@ import { FetchAssetByIdRepository } from '@/core/domain/repositories/assets/fetch-asset-by-id-repository' import { AssetResponseDto } from '../../dto/asset-response-dto' import { assetEntityToDto } from '../../mappers/asset-mapper' +import { inject, injectable } from 'inversify' export interface FetchAssetById { execute: ( @@ -10,8 +11,10 @@ export interface FetchAssetById { ) => Promise } +@injectable() export class FetchAssetByIdUseCase implements FetchAssetById { constructor( + @inject(FetchAssetByIdRepository) private readonly fetchAssetByIdRepository: FetchAssetByIdRepository ) {} diff --git a/src/core/application/use-cases/assets/update-asset-use-case.ts b/src/core/application/use-cases/assets/update-asset-use-case.ts index f6faa276..baaeff41 100644 --- a/src/core/application/use-cases/assets/update-asset-use-case.ts +++ b/src/core/application/use-cases/assets/update-asset-use-case.ts @@ -6,6 +6,7 @@ import { assetEntityToDto, assetUpdateDtoToEntity } from '../../mappers/asset-mapper' +import { inject, injectable } from 'inversify' export interface UpdateAsset { execute: ( @@ -16,8 +17,12 @@ export interface UpdateAsset { ) => Promise } +@injectable() export class UpdateAssetUseCase implements UpdateAsset { - constructor(private readonly updateAssetRepository: UpdateAssetRepository) {} + constructor( + @inject(UpdateAssetRepository) + private readonly updateAssetRepository: UpdateAssetRepository + ) {} async execute( organizationId: string, ledgerId: string, diff --git a/src/core/domain/repositories/assets/create-asset-repository.ts b/src/core/domain/repositories/assets/create-asset-repository.ts index e9ac5587..1c42aa38 100644 --- a/src/core/domain/repositories/assets/create-asset-repository.ts +++ b/src/core/domain/repositories/assets/create-asset-repository.ts @@ -1,7 +1,7 @@ import { AssetEntity } from '../../entities/asset-entity' -export interface CreateAssetRepository { - create: ( +export abstract class CreateAssetRepository { + abstract create: ( organizationId: string, ledgerId: string, asset: AssetEntity diff --git a/src/core/domain/repositories/assets/delete-asset-repository.ts b/src/core/domain/repositories/assets/delete-asset-repository.ts index cc5a2d3c..cba6f9d4 100644 --- a/src/core/domain/repositories/assets/delete-asset-repository.ts +++ b/src/core/domain/repositories/assets/delete-asset-repository.ts @@ -1,5 +1,5 @@ -export interface DeleteAssetRepository { - delete: ( +export abstract class DeleteAssetRepository { + abstract delete: ( organizationId: string, ledgerId: string, assetId: string diff --git a/src/core/domain/repositories/assets/fetch-all-assets-repository.ts b/src/core/domain/repositories/assets/fetch-all-assets-repository.ts index bac62570..3770309d 100644 --- a/src/core/domain/repositories/assets/fetch-all-assets-repository.ts +++ b/src/core/domain/repositories/assets/fetch-all-assets-repository.ts @@ -1,8 +1,8 @@ import { AssetEntity } from '../../entities/asset-entity' import { PaginationEntity } from '../../entities/pagination-entity' -export interface FetchAllAssetsRepository { - fetchAll: ( +export abstract class FetchAllAssetsRepository { + abstract fetchAll: ( organizationId: string, ledgerId: string, limit: number, diff --git a/src/core/domain/repositories/assets/fetch-asset-by-id-repository.ts b/src/core/domain/repositories/assets/fetch-asset-by-id-repository.ts index ede23980..1a074e5c 100644 --- a/src/core/domain/repositories/assets/fetch-asset-by-id-repository.ts +++ b/src/core/domain/repositories/assets/fetch-asset-by-id-repository.ts @@ -1,7 +1,7 @@ import { AssetEntity } from '../../entities/asset-entity' -export interface FetchAssetByIdRepository { - fetchById: ( +export abstract class FetchAssetByIdRepository { + abstract fetchById: ( organizationId: string, ledgerId: string, assetId: string diff --git a/src/core/domain/repositories/assets/update-asset-repository.ts b/src/core/domain/repositories/assets/update-asset-repository.ts index 707bfef7..e99b587d 100644 --- a/src/core/domain/repositories/assets/update-asset-repository.ts +++ b/src/core/domain/repositories/assets/update-asset-repository.ts @@ -1,7 +1,7 @@ import { AssetEntity } from '../../entities/asset-entity' -export interface UpdateAssetRepository { - update: ( +export abstract class UpdateAssetRepository { + abstract update: ( organizationId: string, ledgerId: string, assetId: string, diff --git a/src/core/infrastructure/container-registry/asset-module.ts b/src/core/infrastructure/container-registry/asset-module.ts deleted file mode 100644 index 842094b9..00000000 --- a/src/core/infrastructure/container-registry/asset-module.ts +++ /dev/null @@ -1,107 +0,0 @@ -import { ContainerModule, interfaces } from 'inversify' - -import { - CreateAsset, - CreateAssetUseCase -} from '@/core/application/use-cases/assets/create-asset-use-case' -import { - DeleteAsset, - DeleteAssetUseCase -} from '@/core/application/use-cases/assets/delete-asset-use-case' -import { - FetchAllAssets, - FetchAllAssetsUseCase -} from '@/core/application/use-cases/assets/fetch-all-assets-use-case' -import { FetchAssetByIdUseCase } from '@/core/application/use-cases/assets/fetch-asset-by-id-use-case' -import { - UpdateAsset, - UpdateAssetUseCase -} from '@/core/application/use-cases/assets/update-asset-use-case' - -import { CreateAssetRepository } from '@/core/domain/repositories/assets/create-asset-repository' -import { DeleteAssetRepository } from '@/core/domain/repositories/assets/delete-asset-repository' -import { FetchAllAssetsRepository } from '@/core/domain/repositories/assets/fetch-all-assets-repository' -import { FetchAssetByIdRepository } from '@/core/domain/repositories/assets/fetch-asset-by-id-repository' -import { UpdateAssetRepository } from '@/core/domain/repositories/assets/update-asset-repository' - -import { MidazCreateAssetRepository } from '../midaz/assets/midaz-create-asset-repository' -import { MidazDeleteAssetRepository } from '../midaz/assets/midaz-delete-asset-repository' -import { MidazFetchAllAssetsRepository } from '../midaz/assets/midaz-fetch-all-assets-repository' -import { MidazFetchAssetByIdRepository } from '../midaz/assets/midaz-fetch-asset-by-id-repository' -import { MidazUpdateAssetRepository } from '../midaz/assets/midaz-update-asset-repository' - -export const AssetRegistry = { - CreateAssetUseCase: Symbol.for('CreateAssetUseCase'), - FetchAllAssetsUseCase: Symbol.for('FetchAllAssetsUseCase'), - FetchAssetByIdUseCase: Symbol.for('FetchAssetByIdUseCase'), - UpdateAssetUseCase: Symbol.for('UpdateAssetUseCase'), - DeleteAssetUseCase: Symbol.for('DeleteAssetUseCase'), - - CreateAssetRepository: Symbol.for('CreateAssetRepository'), - FetchAllAssetsRepository: Symbol.for('FetchAllAssetsRepository'), - FetchAssetByIdRepository: Symbol.for('FetchAssetByIdRepository'), - UpdateAssetRepository: Symbol.for('UpdateAssetRepository'), - DeleteAssetRepository: Symbol.for('DeleteAssetRepository') -} - -export const AssetModule = new ContainerModule((bind: interfaces.Bind) => { - bind( - AssetRegistry.CreateAssetRepository - ).toConstantValue(new MidazCreateAssetRepository()) - - bind(AssetRegistry.CreateAssetUseCase).toDynamicValue( - (context) => { - return new CreateAssetUseCase( - context.container.get(AssetRegistry.CreateAssetRepository) - ) - } - ) - - bind( - AssetRegistry.FetchAllAssetsRepository - ).toConstantValue(new MidazFetchAllAssetsRepository()) - - bind(AssetRegistry.FetchAllAssetsUseCase).toDynamicValue( - (context) => { - return new FetchAllAssetsUseCase( - context.container.get(AssetRegistry.FetchAllAssetsRepository) - ) - } - ) - - bind( - AssetRegistry.FetchAssetByIdRepository - ).toConstantValue(new MidazFetchAssetByIdRepository()) - - bind( - AssetRegistry.FetchAssetByIdUseCase - ).toDynamicValue((context) => { - return new FetchAssetByIdUseCase( - context.container.get(AssetRegistry.FetchAssetByIdRepository) - ) - }) - - bind( - AssetRegistry.UpdateAssetRepository - ).toConstantValue(new MidazUpdateAssetRepository()) - - bind(AssetRegistry.UpdateAssetUseCase).toDynamicValue( - (context) => { - return new UpdateAssetUseCase( - context.container.get(AssetRegistry.UpdateAssetRepository) - ) - } - ) - - bind( - AssetRegistry.DeleteAssetRepository - ).toConstantValue(new MidazDeleteAssetRepository()) - - bind(AssetRegistry.DeleteAssetUseCase).toDynamicValue( - (context) => { - return new DeleteAssetUseCase( - context.container.get(AssetRegistry.DeleteAssetRepository) - ) - } - ) -}) diff --git a/src/core/infrastructure/container-registry/container-registry.ts b/src/core/infrastructure/container-registry/container-registry.ts index f7054006..c1c322c2 100644 --- a/src/core/infrastructure/container-registry/container-registry.ts +++ b/src/core/infrastructure/container-registry/container-registry.ts @@ -4,8 +4,6 @@ import { FetchAllPortfoliosAccountsUseCase } from '@/core/application/use-cases/portfolios-accounts/fetch-portfolios-accounts-use-case' import { AuthModule, AuthRegistry } from './auth-module' - -import { AssetModule, AssetRegistry } from './asset-module' import { ProductRegistry, ProductModule } from './product-module' import { Container } from '../utils/di/container' @@ -23,10 +21,10 @@ import { MidazFetchAllPortfoliosRepository } from '../midaz/portfolios/midaz-fet import { MidazFetchAllAccountsRepository } from '../midaz/accounts/midaz-fetch-all-accounts-repository' import { PortfolioUseCaseModule } from './use-cases/portfolios-module' import { AccountUseCaseModule } from './use-cases/account-module' +import { AssetUseCaseModule } from './use-cases/asset-module' export const Registry = { ...AuthRegistry, - ...AssetRegistry, ...ProductRegistry, // Portfolio-Accounts @@ -43,9 +41,9 @@ container.load(OrganizationUseCaseModule) container.load(LedgerUseCaseModule) container.load(PortfolioUseCaseModule) container.load(AccountUseCaseModule) +container.load(AssetUseCaseModule) container.container.load(AuthModule) -container.container.load(AssetModule) container.container.load(ProductModule) container diff --git a/src/core/infrastructure/container-registry/use-cases/asset-module.ts b/src/core/infrastructure/container-registry/use-cases/asset-module.ts new file mode 100644 index 00000000..951d024d --- /dev/null +++ b/src/core/infrastructure/container-registry/use-cases/asset-module.ts @@ -0,0 +1,29 @@ +import { Container, ContainerModule } from '../../utils/di/container' + +import { + CreateAsset, + CreateAssetUseCase +} from '@/core/application/use-cases/assets/create-asset-use-case' +import { + DeleteAsset, + DeleteAssetUseCase +} from '@/core/application/use-cases/assets/delete-asset-use-case' +import { + FetchAllAssets, + FetchAllAssetsUseCase +} from '@/core/application/use-cases/assets/fetch-all-assets-use-case' +import { FetchAssetByIdUseCase } from '@/core/application/use-cases/assets/fetch-asset-by-id-use-case' +import { + UpdateAsset, + UpdateAssetUseCase +} from '@/core/application/use-cases/assets/update-asset-use-case' + +export const AssetUseCaseModule = new ContainerModule( + (container: Container) => { + container.bind(CreateAssetUseCase).toSelf() + container.bind(FetchAllAssetsUseCase).toSelf() + container.bind(FetchAssetByIdUseCase).toSelf() + container.bind(UpdateAssetUseCase).toSelf() + container.bind(DeleteAssetUseCase).toSelf() + } +) diff --git a/src/core/infrastructure/midaz/assets/midaz-create-asset-repository.ts b/src/core/infrastructure/midaz/assets/midaz-create-asset-repository.ts index 22bf7856..eb38f83e 100644 --- a/src/core/infrastructure/midaz/assets/midaz-create-asset-repository.ts +++ b/src/core/infrastructure/midaz/assets/midaz-create-asset-repository.ts @@ -1,7 +1,9 @@ import { AssetEntity } from '@/core/domain/entities/asset-entity' import { CreateAssetRepository } from '@/core/domain/repositories/assets/create-asset-repository' import { HTTP_METHODS, httpMidazAuthFetch } from '../../utils/http-fetch-utils' +import { injectable } from 'inversify' +@injectable() export class MidazCreateAssetRepository implements CreateAssetRepository { private baseUrl: string = process.env.MIDAZ_BASE_PATH as string async create( diff --git a/src/core/infrastructure/midaz/assets/midaz-delete-asset-repository.ts b/src/core/infrastructure/midaz/assets/midaz-delete-asset-repository.ts index 5982aba8..331a2d32 100644 --- a/src/core/infrastructure/midaz/assets/midaz-delete-asset-repository.ts +++ b/src/core/infrastructure/midaz/assets/midaz-delete-asset-repository.ts @@ -1,6 +1,8 @@ import { DeleteAssetRepository } from '@/core/domain/repositories/assets/delete-asset-repository' import { httpMidazAuthFetch, HTTP_METHODS } from '../../utils/http-fetch-utils' +import { injectable } from 'inversify' +@injectable() export class MidazDeleteAssetRepository implements DeleteAssetRepository { private baseUrl: string = process.env.MIDAZ_BASE_PATH as string diff --git a/src/core/infrastructure/midaz/assets/midaz-fetch-all-assets-repository.ts b/src/core/infrastructure/midaz/assets/midaz-fetch-all-assets-repository.ts index aa4b2502..6a93e35d 100644 --- a/src/core/infrastructure/midaz/assets/midaz-fetch-all-assets-repository.ts +++ b/src/core/infrastructure/midaz/assets/midaz-fetch-all-assets-repository.ts @@ -2,7 +2,9 @@ import { AssetEntity } from '@/core/domain/entities/asset-entity' import { PaginationEntity } from '@/core/domain/entities/pagination-entity' import { FetchAllAssetsRepository } from '@/core/domain/repositories/assets/fetch-all-assets-repository' import { httpMidazAuthFetch, HTTP_METHODS } from '../../utils/http-fetch-utils' +import { injectable } from 'inversify' +@injectable() export class MidazFetchAllAssetsRepository implements FetchAllAssetsRepository { private baseUrl: string = process.env.MIDAZ_BASE_PATH as string diff --git a/src/core/infrastructure/midaz/assets/midaz-fetch-asset-by-id-repository.ts b/src/core/infrastructure/midaz/assets/midaz-fetch-asset-by-id-repository.ts index 2c007601..ecb2f1ec 100644 --- a/src/core/infrastructure/midaz/assets/midaz-fetch-asset-by-id-repository.ts +++ b/src/core/infrastructure/midaz/assets/midaz-fetch-asset-by-id-repository.ts @@ -1,7 +1,9 @@ import { FetchAssetByIdRepository } from '@/core/domain/repositories/assets/fetch-asset-by-id-repository' import { AssetEntity } from '@/core/domain/entities/asset-entity' import { httpMidazAuthFetch, HTTP_METHODS } from '../../utils/http-fetch-utils' +import { injectable } from 'inversify' +@injectable() export class MidazFetchAssetByIdRepository implements FetchAssetByIdRepository { private baseUrl: string = process.env.MIDAZ_BASE_PATH as string diff --git a/src/core/infrastructure/midaz/assets/midaz-update-asset-repository.ts b/src/core/infrastructure/midaz/assets/midaz-update-asset-repository.ts index 1a7a2827..5a9e4349 100644 --- a/src/core/infrastructure/midaz/assets/midaz-update-asset-repository.ts +++ b/src/core/infrastructure/midaz/assets/midaz-update-asset-repository.ts @@ -1,7 +1,9 @@ import { AssetEntity } from '@/core/domain/entities/asset-entity' import { UpdateAssetRepository } from '@/core/domain/repositories/assets/update-asset-repository' import { httpMidazAuthFetch, HTTP_METHODS } from '../../utils/http-fetch-utils' +import { injectable } from 'inversify' +@injectable() export class MidazUpdateAssetRepository implements UpdateAssetRepository { private baseUrl: string = process.env.MIDAZ_BASE_PATH as string async update( diff --git a/src/core/infrastructure/midaz/module/asset-module.ts b/src/core/infrastructure/midaz/module/asset-module.ts new file mode 100644 index 00000000..b26cb263 --- /dev/null +++ b/src/core/infrastructure/midaz/module/asset-module.ts @@ -0,0 +1,35 @@ +import { Container, ContainerModule } from '../../utils/di/container' + +import { CreateAssetRepository } from '@/core/domain/repositories/assets/create-asset-repository' +import { DeleteAssetRepository } from '@/core/domain/repositories/assets/delete-asset-repository' +import { FetchAllAssetsRepository } from '@/core/domain/repositories/assets/fetch-all-assets-repository' +import { FetchAssetByIdRepository } from '@/core/domain/repositories/assets/fetch-asset-by-id-repository' +import { UpdateAssetRepository } from '@/core/domain/repositories/assets/update-asset-repository' + +import { MidazCreateAssetRepository } from '../assets/midaz-create-asset-repository' +import { MidazDeleteAssetRepository } from '../assets/midaz-delete-asset-repository' +import { MidazFetchAllAssetsRepository } from '../assets/midaz-fetch-all-assets-repository' +import { MidazFetchAssetByIdRepository } from '../assets/midaz-fetch-asset-by-id-repository' +import { MidazUpdateAssetRepository } from '../assets/midaz-update-asset-repository' + +export const MidazAssetModule = new ContainerModule((container: Container) => { + container + .bind(CreateAssetRepository) + .to(MidazCreateAssetRepository) + + container + .bind(FetchAllAssetsRepository) + .to(MidazFetchAllAssetsRepository) + + container + .bind(FetchAssetByIdRepository) + .to(MidazFetchAssetByIdRepository) + + container + .bind(UpdateAssetRepository) + .to(MidazUpdateAssetRepository) + + container + .bind(DeleteAssetRepository) + .to(MidazDeleteAssetRepository) +}) diff --git a/src/core/infrastructure/midaz/module/midaz-module.ts b/src/core/infrastructure/midaz/module/midaz-module.ts index 1f6cfc82..df10a7eb 100644 --- a/src/core/infrastructure/midaz/module/midaz-module.ts +++ b/src/core/infrastructure/midaz/module/midaz-module.ts @@ -1,5 +1,6 @@ import { Container, ContainerModule } from '../../utils/di/container' import { MidazAccountModule } from './account-module' +import { MidazAssetModule } from './asset-module' import { MidazLedgerModule } from './ledger-module' import { MidazOrganizationModule } from './organization-module' import { MidazPortfolioModule } from './portfolio-module' @@ -9,4 +10,5 @@ export const MidazModule = new ContainerModule((container: Container) => { container.load(MidazLedgerModule) container.load(MidazPortfolioModule) container.load(MidazAccountModule) + container.load(MidazAssetModule) })