35 lines
863 B
TypeScript
35 lines
863 B
TypeScript
import type { GetMediaOutputDto, UploadMediaOutputDto, DeleteMediaOutputDto } from '../dtos';
|
|
import type { MediaViewModel, UploadMediaViewModel, DeleteMediaViewModel } from '../view-models';
|
|
|
|
/**
|
|
* Media Presenter
|
|
* Transforms media DTOs to ViewModels
|
|
*/
|
|
export class MediaPresenter {
|
|
presentMedia(dto: GetMediaOutputDto): MediaViewModel {
|
|
return {
|
|
id: dto.id,
|
|
url: dto.url,
|
|
type: dto.type,
|
|
category: dto.category,
|
|
uploadedAt: new Date(dto.uploadedAt),
|
|
size: dto.size,
|
|
};
|
|
}
|
|
|
|
presentUpload(dto: UploadMediaOutputDto): UploadMediaViewModel {
|
|
return {
|
|
success: dto.success,
|
|
mediaId: dto.mediaId,
|
|
url: dto.url,
|
|
error: dto.error,
|
|
};
|
|
}
|
|
|
|
presentDelete(dto: DeleteMediaOutputDto): DeleteMediaViewModel {
|
|
return {
|
|
success: dto.success,
|
|
error: dto.error,
|
|
};
|
|
}
|
|
} |