refactor use cases

This commit is contained in:
2026-01-08 15:34:51 +01:00
parent d984ab24a8
commit 52e9a2f6a7
362 changed files with 5192 additions and 8409 deletions

View File

@@ -1,20 +1,20 @@
import type { UseCaseOutputPort } from '@core/shared/application';
import type { DeleteMediaResult } from '@core/media/application/use-cases/DeleteMediaUseCase';
import type { DeleteMediaOutputDTO } from '../dtos/DeleteMediaOutputDTO';
type DeleteMediaResponseModel = DeleteMediaOutputDTO;
export class DeleteMediaPresenter implements UseCaseOutputPort<DeleteMediaResult> {
export class DeleteMediaPresenter {
private model: DeleteMediaResponseModel | null = null;
reset(): void {
this.model = null;
}
present(result: DeleteMediaResult): void {
transform(result: DeleteMediaResult): DeleteMediaResponseModel {
this.model = {
success: result.deleted,
};
return this.model;
}
getResponseModel(): DeleteMediaResponseModel | null {
@@ -25,4 +25,4 @@ export class DeleteMediaPresenter implements UseCaseOutputPort<DeleteMediaResult
if (!this.model) throw new Error('Presenter not presented');
return this.model;
}
}
}

View File

@@ -1,20 +1,20 @@
import type { UseCaseOutputPort } from '@core/shared/application';
import type { GetAvatarResult } from '@core/media/application/use-cases/GetAvatarUseCase';
import type { GetAvatarOutputDTO } from '../dtos/GetAvatarOutputDTO';
export type GetAvatarResponseModel = GetAvatarOutputDTO | null;
export class GetAvatarPresenter implements UseCaseOutputPort<GetAvatarResult> {
export class GetAvatarPresenter {
private model: GetAvatarResponseModel | null = null;
reset(): void {
this.model = null;
}
present(result: GetAvatarResult): void {
transform(result: GetAvatarResult): GetAvatarResponseModel {
this.model = {
avatarUrl: result.avatar.mediaUrl,
};
return this.model;
}
getResponseModel(): GetAvatarResponseModel | null {

View File

@@ -1,17 +1,16 @@
import type { UseCaseOutputPort } from '@core/shared/application';
import type { GetMediaResult } from '@core/media/application/use-cases/GetMediaUseCase';
import type { GetMediaOutputDTO } from '../dtos/GetMediaOutputDTO';
export type GetMediaResponseModel = GetMediaOutputDTO | null;
export class GetMediaPresenter implements UseCaseOutputPort<GetMediaResult> {
export class GetMediaPresenter {
private model: GetMediaResponseModel | null = null;
reset(): void {
this.model = null;
}
present(result: GetMediaResult): void {
transform(result: GetMediaResult): GetMediaResponseModel {
const media = result.media;
const model: GetMediaResponseModel = {
@@ -29,6 +28,7 @@ export class GetMediaPresenter implements UseCaseOutputPort<GetMediaResult> {
}
this.model = model;
return model;
}
getResponseModel(): GetMediaResponseModel | null {

View File

@@ -1,22 +1,22 @@
import type { UseCaseOutputPort } from '@core/shared/application';
import type { RequestAvatarGenerationResult } from '@core/media/application/use-cases/RequestAvatarGenerationUseCase';
import type { RequestAvatarGenerationOutputDTO } from '../dtos/RequestAvatarGenerationOutputDTO';
type RequestAvatarGenerationResponseModel = RequestAvatarGenerationOutputDTO;
export class RequestAvatarGenerationPresenter implements UseCaseOutputPort<RequestAvatarGenerationResult> {
export class RequestAvatarGenerationPresenter {
private model: RequestAvatarGenerationResponseModel | null = null;
reset() {
this.model = null;
}
present(result: RequestAvatarGenerationResult): void {
transform(result: RequestAvatarGenerationResult): RequestAvatarGenerationResponseModel {
this.model = {
success: result.status === 'completed',
requestId: result.requestId,
avatarUrls: result.avatarUrls || [],
};
return this.model;
}
getResponseModel(): RequestAvatarGenerationResponseModel | null {

View File

@@ -1,22 +1,22 @@
import type { UseCaseOutputPort } from '@core/shared/application';
import type { UpdateAvatarResult } from '@core/media/application/use-cases/UpdateAvatarUseCase';
import type { UpdateAvatarOutputDTO } from '../dtos/UpdateAvatarOutputDTO';
type UpdateAvatarResponseModel = UpdateAvatarOutputDTO;
export class UpdateAvatarPresenter implements UseCaseOutputPort<UpdateAvatarResult> {
export class UpdateAvatarPresenter {
private model: UpdateAvatarResponseModel | null = null;
reset(): void {
this.model = null;
}
present(result: UpdateAvatarResult): void {
transform(result: UpdateAvatarResult): UpdateAvatarResponseModel {
void result;
this.model = {
success: true,
};
return this.model;
}
getResponseModel(): UpdateAvatarResponseModel | null {

View File

@@ -1,17 +1,16 @@
import type { UseCaseOutputPort } from '@core/shared/application';
import type { UploadMediaResult } from '@core/media/application/use-cases/UploadMediaUseCase';
import type { UploadMediaOutputDTO } from '../dtos/UploadMediaOutputDTO';
type UploadMediaResponseModel = UploadMediaOutputDTO;
export class UploadMediaPresenter implements UseCaseOutputPort<UploadMediaResult> {
export class UploadMediaPresenter {
private model: UploadMediaResponseModel | null = null;
reset(): void {
this.model = null;
}
present(result: UploadMediaResult): void {
transform(result: UploadMediaResult): UploadMediaResponseModel {
const model: UploadMediaResponseModel = {
success: true,
mediaId: result.mediaId,
@@ -22,6 +21,7 @@ export class UploadMediaPresenter implements UseCaseOutputPort<UploadMediaResult
}
this.model = model;
return model;
}
getResponseModel(): UploadMediaResponseModel | null {
@@ -32,4 +32,4 @@ export class UploadMediaPresenter implements UseCaseOutputPort<UploadMediaResult
if (!this.model) throw new Error('Presenter not presented');
return this.model;
}
}
}