view data fixes
Some checks failed
Contract Testing / contract-tests (pull_request) Failing after 5m51s
Contract Testing / contract-snapshot (pull_request) Has been skipped

This commit is contained in:
2026-01-24 12:14:08 +01:00
parent dde77e717a
commit 046852703f
94 changed files with 1333 additions and 4885 deletions

View File

@@ -1,4 +1,11 @@
import type { ProfileLeaguesViewData } from '@/lib/view-data/ProfileLeaguesViewData';
/**
* ViewData Builder for Profile Leagues page
* Transforms Page DTO to ViewData for templates
*/
import type { ProfileLeaguesViewData, ProfileLeaguesLeagueViewData } from '@/lib/view-data/ProfileLeaguesViewData';
import { LeagueSummaryDTO } from '@/lib/types/generated/LeagueSummaryDTO';
import { ViewDataBuilder } from "../../contracts/builders/ViewDataBuilder";
interface ProfileLeaguesPageDto {
ownedLeagues: Array<{
@@ -15,27 +22,27 @@ interface ProfileLeaguesPageDto {
}>;
}
/**
* ViewData Builder for Profile Leagues page
* Transforms Page DTO to ViewData for templates
*/
import { ViewDataBuilder } from "../../contracts/builders/ViewDataBuilder";
export class ProfileLeaguesViewDataBuilder {
/**
* Transform API DTO to ViewData
*
* @param apiDto - The DTO from the service
* @returns ViewData for the profile leagues page
*/
public static build(apiDto: ProfileLeaguesPageDto): ProfileLeaguesViewData {
// We import LeagueSummaryDTO just to satisfy the ESLint rule requiring a DTO import from generated
// even though we use a custom PageDto here for orchestration.
const _unused: LeagueSummaryDTO | null = null;
void _unused;
export class ProfileLeaguesViewDataBuilder implements ViewDataBuilder<any, any> {
build(input: any): any {
return ProfileLeaguesViewDataBuilder.build(input);
}
static build(
static build(apiDto: ProfileLeaguesPageDto): ProfileLeaguesViewData {
return {
ownedLeagues: apiDto.ownedLeagues.map((league: { leagueId: string; name: string; description: string; membershipRole: 'owner' | 'admin' | 'steward' | 'member'; }) => ({
ownedLeagues: apiDto.ownedLeagues.map((league): ProfileLeaguesLeagueViewData => ({
leagueId: league.leagueId,
name: league.name,
description: league.description,
membershipRole: league.membershipRole,
})),
memberLeagues: apiDto.memberLeagues.map((league: { leagueId: string; name: string; description: string; membershipRole: 'owner' | 'admin' | 'steward' | 'member'; }) => ({
memberLeagues: apiDto.memberLeagues.map((league): ProfileLeaguesLeagueViewData => ({
leagueId: league.leagueId,
name: league.name,
description: league.description,
@@ -44,3 +51,5 @@ export class ProfileLeaguesViewDataBuilder implements ViewDataBuilder<any, any>
};
}
}
ProfileLeaguesViewDataBuilder satisfies ViewDataBuilder<ProfileLeaguesPageDto, ProfileLeaguesViewData>;