website refactor
This commit is contained in:
@@ -86,14 +86,18 @@ export class MediaController {
|
||||
@Res() res: Response,
|
||||
): Promise<void> {
|
||||
this.logger.debug('[MediaController] Generating team logo', { teamId });
|
||||
const svg = this.mediaGenerationService.generateTeamLogo(teamId);
|
||||
const svgLength = svg.length;
|
||||
const url = this.mediaGenerationService.generateTeamLogo(teamId);
|
||||
|
||||
if (url.startsWith('http')) {
|
||||
res.redirect(HttpStatus.FOUND, url);
|
||||
return;
|
||||
}
|
||||
|
||||
res.setHeader('Content-Type', 'image/svg+xml; charset=utf-8');
|
||||
res.setHeader('Cache-Control', 'public, max-age=86400');
|
||||
res.status(HttpStatus.OK).send(svg);
|
||||
res.status(HttpStatus.OK).send(url);
|
||||
|
||||
this.logger.info('[MediaController] Team logo generated', { teamId, svgLength });
|
||||
this.logger.info('[MediaController] Team logo generated', { teamId });
|
||||
}
|
||||
|
||||
@Public()
|
||||
@@ -105,14 +109,18 @@ export class MediaController {
|
||||
@Res() res: Response,
|
||||
): Promise<void> {
|
||||
this.logger.debug('[MediaController] Generating league logo', { leagueId });
|
||||
const svg = this.mediaGenerationService.generateLeagueLogo(leagueId);
|
||||
const svgLength = svg.length;
|
||||
const url = this.mediaGenerationService.generateLeagueLogo(leagueId);
|
||||
|
||||
if (url.startsWith('http')) {
|
||||
res.redirect(HttpStatus.FOUND, url);
|
||||
return;
|
||||
}
|
||||
|
||||
res.setHeader('Content-Type', 'image/svg+xml; charset=utf-8');
|
||||
res.setHeader('Cache-Control', 'public, max-age=86400');
|
||||
res.status(HttpStatus.OK).send(svg);
|
||||
res.status(HttpStatus.OK).send(url);
|
||||
|
||||
this.logger.info('[MediaController] League logo generated', { leagueId, svgLength });
|
||||
this.logger.info('[MediaController] League logo generated', { leagueId });
|
||||
}
|
||||
|
||||
@Public()
|
||||
@@ -124,14 +132,18 @@ export class MediaController {
|
||||
@Res() res: Response,
|
||||
): Promise<void> {
|
||||
this.logger.debug('[MediaController] Generating league cover', { leagueId });
|
||||
const svg = this.mediaGenerationService.generateLeagueCover(leagueId);
|
||||
const svgLength = svg.length;
|
||||
const url = this.mediaGenerationService.generateLeagueCover(leagueId);
|
||||
|
||||
if (url.startsWith('http')) {
|
||||
res.redirect(HttpStatus.FOUND, url);
|
||||
return;
|
||||
}
|
||||
|
||||
res.setHeader('Content-Type', 'image/svg+xml; charset=utf-8');
|
||||
res.setHeader('Cache-Control', 'public, max-age=86400');
|
||||
res.status(HttpStatus.OK).send(svg);
|
||||
res.status(HttpStatus.OK).send(url);
|
||||
|
||||
this.logger.info('[MediaController] League cover generated', { leagueId, svgLength });
|
||||
this.logger.info('[MediaController] League cover generated', { leagueId });
|
||||
}
|
||||
|
||||
@Public()
|
||||
@@ -143,14 +155,18 @@ export class MediaController {
|
||||
@Res() res: Response,
|
||||
): Promise<void> {
|
||||
this.logger.debug('[MediaController] Generating driver avatar', { driverId });
|
||||
const svg = this.mediaGenerationService.generateDriverAvatar(driverId);
|
||||
const svgLength = svg.length;
|
||||
const url = this.mediaGenerationService.generateDriverAvatar(driverId);
|
||||
|
||||
if (url.startsWith('http')) {
|
||||
res.redirect(HttpStatus.FOUND, url);
|
||||
return;
|
||||
}
|
||||
|
||||
res.setHeader('Content-Type', 'image/svg+xml; charset=utf-8');
|
||||
res.setHeader('Cache-Control', 'public, max-age=86400');
|
||||
res.status(HttpStatus.OK).send(svg);
|
||||
res.status(HttpStatus.OK).send(url);
|
||||
|
||||
this.logger.info('[MediaController] Driver avatar generated', { driverId, svgLength });
|
||||
this.logger.info('[MediaController] Driver avatar generated', { driverId });
|
||||
}
|
||||
|
||||
@Public()
|
||||
@@ -223,27 +239,30 @@ export class MediaController {
|
||||
@Res() res: Response,
|
||||
): Promise<void> {
|
||||
this.logger.debug('[MediaController] Generating media', { type, id });
|
||||
let svg: string;
|
||||
let url: string;
|
||||
|
||||
// Route to appropriate generator based on type
|
||||
if (type === 'team') {
|
||||
svg = this.mediaGenerationService.generateTeamLogo(id);
|
||||
url = this.mediaGenerationService.generateTeamLogo(id);
|
||||
} else if (type === 'league') {
|
||||
svg = this.mediaGenerationService.generateLeagueLogo(id);
|
||||
url = this.mediaGenerationService.generateLeagueLogo(id);
|
||||
} else if (type === 'driver') {
|
||||
svg = this.mediaGenerationService.generateDriverAvatar(id);
|
||||
url = this.mediaGenerationService.generateDriverAvatar(id);
|
||||
} else {
|
||||
// Fallback: generate a generic logo
|
||||
svg = this.mediaGenerationService.generateLeagueLogo(`${type}-${id}`);
|
||||
url = this.mediaGenerationService.generateLeagueLogo(`${type}-${id}`);
|
||||
}
|
||||
|
||||
const svgLength = svg.length;
|
||||
if (url.startsWith('http')) {
|
||||
res.redirect(HttpStatus.FOUND, url);
|
||||
return;
|
||||
}
|
||||
|
||||
res.setHeader('Content-Type', 'image/svg+xml; charset=utf-8');
|
||||
res.setHeader('Cache-Control', 'public, max-age=31536000, immutable');
|
||||
res.status(HttpStatus.OK).send(svg);
|
||||
res.status(HttpStatus.OK).send(url);
|
||||
|
||||
this.logger.info('[MediaController] Generated media served', { type, id, svgLength });
|
||||
this.logger.info('[MediaController] Generated media served', { type, id });
|
||||
}
|
||||
|
||||
@Public()
|
||||
|
||||
Reference in New Issue
Block a user