Files
gridpilot.gg/apps/api/src/domain/media/presenters/UpdateAvatarPresenter.ts
2025-12-25 13:40:38 +01:00

30 lines
834 B
TypeScript

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> {
private model: UpdateAvatarResponseModel | null = null;
reset(): void {
this.model = null;
}
present(result: UpdateAvatarResult): void {
void result;
this.model = {
success: true,
};
}
getResponseModel(): UpdateAvatarResponseModel | null {
return this.model;
}
get responseModel(): UpdateAvatarResponseModel {
if (!this.model) throw new Error('Presenter not presented');
return this.model;
}
}