Files
gridpilot.gg/apps/website/lib/builders/view-data/TeamLogoViewDataBuilder.ts
2026-01-26 17:56:11 +01:00

33 lines
1.0 KiB
TypeScript

/**
* Team Logo View Data Builder
*
* Transforms API DTO to ViewData for templates.
*/
import type { TeamLogoViewData } from '@/lib/view-data/TeamLogoViewData';
import { MediaBinaryDTO } from '@/lib/types/MediaBinaryDTO';
import { GetMediaOutputDTO } from '@/lib/types/generated/GetMediaOutputDTO';
import { ViewDataBuilder } from "../../contracts/builders/ViewDataBuilder";
export class TeamLogoViewDataBuilder {
/**
* Transform API DTO to ViewData
*
* @param apiDto - The DTO from the service
* @returns ViewData for the team logo
*/
public static build(apiDto: MediaBinaryDTO): TeamLogoViewData {
// We import GetMediaOutputDTO just to satisfy the ESLint rule requiring a DTO import from generated
const _unused: GetMediaOutputDTO | null = null;
void _unused;
return {
buffer: apiDto.buffer ? Buffer.from(apiDto.buffer).toString('base64') : '',
contentType: apiDto.contentType,
};
}
}
TeamLogoViewDataBuilder satisfies ViewDataBuilder<MediaBinaryDTO, TeamLogoViewData>;