refactor use cases
This commit is contained in:
@@ -7,7 +7,7 @@ import { IAvatarRepository } from '@core/media/domain/repositories/IAvatarReposi
|
||||
import { FaceValidationPort } from '@core/media/application/ports/FaceValidationPort';
|
||||
import { AvatarGenerationPort } from '@core/media/application/ports/AvatarGenerationPort';
|
||||
import { MediaStoragePort } from '@core/media/application/ports/MediaStoragePort';
|
||||
import type { Logger, UseCaseOutputPort } from '@core/shared/application';
|
||||
import type { Logger } from '@core/shared/application';
|
||||
|
||||
// Import use cases
|
||||
import { RequestAvatarGenerationUseCase } from '@core/media/application/use-cases/RequestAvatarGenerationUseCase';
|
||||
@@ -17,14 +17,6 @@ import { DeleteMediaUseCase } from '@core/media/application/use-cases/DeleteMedi
|
||||
import { GetAvatarUseCase } from '@core/media/application/use-cases/GetAvatarUseCase';
|
||||
import { UpdateAvatarUseCase } from '@core/media/application/use-cases/UpdateAvatarUseCase';
|
||||
|
||||
// Import result types
|
||||
import type { RequestAvatarGenerationResult } from '@core/media/application/use-cases/RequestAvatarGenerationUseCase';
|
||||
import type { UploadMediaResult } from '@core/media/application/use-cases/UploadMediaUseCase';
|
||||
import type { GetMediaResult } from '@core/media/application/use-cases/GetMediaUseCase';
|
||||
import type { DeleteMediaResult } from '@core/media/application/use-cases/DeleteMediaUseCase';
|
||||
import type { GetAvatarResult } from '@core/media/application/use-cases/GetAvatarUseCase';
|
||||
import type { UpdateAvatarResult } from '@core/media/application/use-cases/UpdateAvatarUseCase';
|
||||
|
||||
// Import presenters
|
||||
import { RequestAvatarGenerationPresenter } from './presenters/RequestAvatarGenerationPresenter';
|
||||
import { UploadMediaPresenter } from './presenters/UploadMediaPresenter';
|
||||
@@ -47,12 +39,6 @@ import {
|
||||
DELETE_MEDIA_USE_CASE_TOKEN,
|
||||
GET_AVATAR_USE_CASE_TOKEN,
|
||||
UPDATE_AVATAR_USE_CASE_TOKEN,
|
||||
REQUEST_AVATAR_GENERATION_OUTPUT_PORT_TOKEN,
|
||||
UPLOAD_MEDIA_OUTPUT_PORT_TOKEN,
|
||||
GET_MEDIA_OUTPUT_PORT_TOKEN,
|
||||
DELETE_MEDIA_OUTPUT_PORT_TOKEN,
|
||||
GET_AVATAR_OUTPUT_PORT_TOKEN,
|
||||
UPDATE_AVATAR_OUTPUT_PORT_TOKEN,
|
||||
} from './MediaTokens';
|
||||
|
||||
export * from './MediaTokens';
|
||||
@@ -133,66 +119,41 @@ export const MediaProviders: Provider[] = createLoggedProviders([
|
||||
provide: LOGGER_TOKEN,
|
||||
useClass: MockLogger,
|
||||
},
|
||||
// Output ports
|
||||
{
|
||||
provide: REQUEST_AVATAR_GENERATION_OUTPUT_PORT_TOKEN,
|
||||
useExisting: RequestAvatarGenerationPresenter,
|
||||
},
|
||||
{
|
||||
provide: UPLOAD_MEDIA_OUTPUT_PORT_TOKEN,
|
||||
useExisting: UploadMediaPresenter,
|
||||
},
|
||||
{
|
||||
provide: GET_MEDIA_OUTPUT_PORT_TOKEN,
|
||||
useExisting: GetMediaPresenter,
|
||||
},
|
||||
{
|
||||
provide: DELETE_MEDIA_OUTPUT_PORT_TOKEN,
|
||||
useExisting: DeleteMediaPresenter,
|
||||
},
|
||||
{
|
||||
provide: GET_AVATAR_OUTPUT_PORT_TOKEN,
|
||||
useExisting: GetAvatarPresenter,
|
||||
},
|
||||
{
|
||||
provide: UPDATE_AVATAR_OUTPUT_PORT_TOKEN,
|
||||
useExisting: UpdateAvatarPresenter,
|
||||
},
|
||||
// Use cases
|
||||
// Use cases - simplified without output ports
|
||||
{
|
||||
provide: REQUEST_AVATAR_GENERATION_USE_CASE_TOKEN,
|
||||
useFactory: (avatarRepo: IAvatarGenerationRepository, faceValidation: FaceValidationPort, avatarGeneration: AvatarGenerationPort, output: UseCaseOutputPort<RequestAvatarGenerationResult>, logger: Logger) =>
|
||||
new RequestAvatarGenerationUseCase(avatarRepo, faceValidation, avatarGeneration, output, logger),
|
||||
inject: [AVATAR_GENERATION_REPOSITORY_TOKEN, FACE_VALIDATION_PORT_TOKEN, AVATAR_GENERATION_PORT_TOKEN, REQUEST_AVATAR_GENERATION_OUTPUT_PORT_TOKEN, LOGGER_TOKEN],
|
||||
useFactory: (avatarRepo: IAvatarGenerationRepository, faceValidation: FaceValidationPort, avatarGeneration: AvatarGenerationPort, logger: Logger) =>
|
||||
new RequestAvatarGenerationUseCase(avatarRepo, faceValidation, avatarGeneration, logger),
|
||||
inject: [AVATAR_GENERATION_REPOSITORY_TOKEN, FACE_VALIDATION_PORT_TOKEN, AVATAR_GENERATION_PORT_TOKEN, LOGGER_TOKEN],
|
||||
},
|
||||
{
|
||||
provide: UPLOAD_MEDIA_USE_CASE_TOKEN,
|
||||
useFactory: (mediaRepo: IMediaRepository, mediaStorage: MediaStoragePort, output: UseCaseOutputPort<UploadMediaResult>, logger: Logger) =>
|
||||
new UploadMediaUseCase(mediaRepo, mediaStorage, output, logger),
|
||||
inject: [MEDIA_REPOSITORY_TOKEN, MEDIA_STORAGE_PORT_TOKEN, UPLOAD_MEDIA_OUTPUT_PORT_TOKEN, LOGGER_TOKEN],
|
||||
useFactory: (mediaRepo: IMediaRepository, mediaStorage: MediaStoragePort, logger: Logger) =>
|
||||
new UploadMediaUseCase(mediaRepo, mediaStorage, logger),
|
||||
inject: [MEDIA_REPOSITORY_TOKEN, MEDIA_STORAGE_PORT_TOKEN, LOGGER_TOKEN],
|
||||
},
|
||||
{
|
||||
provide: GET_MEDIA_USE_CASE_TOKEN,
|
||||
useFactory: (mediaRepo: IMediaRepository, output: UseCaseOutputPort<GetMediaResult>, logger: Logger) =>
|
||||
new GetMediaUseCase(mediaRepo, output, logger),
|
||||
inject: [MEDIA_REPOSITORY_TOKEN, GET_MEDIA_OUTPUT_PORT_TOKEN, LOGGER_TOKEN],
|
||||
useFactory: (mediaRepo: IMediaRepository, logger: Logger) =>
|
||||
new GetMediaUseCase(mediaRepo, logger),
|
||||
inject: [MEDIA_REPOSITORY_TOKEN, LOGGER_TOKEN],
|
||||
},
|
||||
{
|
||||
provide: DELETE_MEDIA_USE_CASE_TOKEN,
|
||||
useFactory: (mediaRepo: IMediaRepository, mediaStorage: MediaStoragePort, output: UseCaseOutputPort<DeleteMediaResult>, logger: Logger) =>
|
||||
new DeleteMediaUseCase(mediaRepo, mediaStorage, output, logger),
|
||||
inject: [MEDIA_REPOSITORY_TOKEN, MEDIA_STORAGE_PORT_TOKEN, DELETE_MEDIA_OUTPUT_PORT_TOKEN, LOGGER_TOKEN],
|
||||
useFactory: (mediaRepo: IMediaRepository, mediaStorage: MediaStoragePort, logger: Logger) =>
|
||||
new DeleteMediaUseCase(mediaRepo, mediaStorage, logger),
|
||||
inject: [MEDIA_REPOSITORY_TOKEN, MEDIA_STORAGE_PORT_TOKEN, LOGGER_TOKEN],
|
||||
},
|
||||
{
|
||||
provide: GET_AVATAR_USE_CASE_TOKEN,
|
||||
useFactory: (avatarRepo: IAvatarRepository, output: UseCaseOutputPort<GetAvatarResult>, logger: Logger) =>
|
||||
new GetAvatarUseCase(avatarRepo, output, logger),
|
||||
inject: [AVATAR_REPOSITORY_TOKEN, GET_AVATAR_OUTPUT_PORT_TOKEN, LOGGER_TOKEN],
|
||||
useFactory: (avatarRepo: IAvatarRepository, logger: Logger) =>
|
||||
new GetAvatarUseCase(avatarRepo, logger),
|
||||
inject: [AVATAR_REPOSITORY_TOKEN, LOGGER_TOKEN],
|
||||
},
|
||||
{
|
||||
provide: UPDATE_AVATAR_USE_CASE_TOKEN,
|
||||
useFactory: (avatarRepo: IAvatarRepository, output: UseCaseOutputPort<UpdateAvatarResult>, logger: Logger) =>
|
||||
new UpdateAvatarUseCase(avatarRepo, output, logger),
|
||||
inject: [AVATAR_REPOSITORY_TOKEN, UPDATE_AVATAR_OUTPUT_PORT_TOKEN, LOGGER_TOKEN],
|
||||
useFactory: (avatarRepo: IAvatarRepository, logger: Logger) =>
|
||||
new UpdateAvatarUseCase(avatarRepo, logger),
|
||||
inject: [AVATAR_REPOSITORY_TOKEN, LOGGER_TOKEN],
|
||||
},
|
||||
], initLogger);
|
||||
Reference in New Issue
Block a user