refactor league module (wip)
This commit is contained in:
@@ -1,24 +1,35 @@
|
||||
import type { GetLeagueMembershipsOutputPort } from '@core/racing/application/ports/output/GetLeagueMembershipsOutputPort';
|
||||
import { LeagueMembershipsDTO, LeagueMemberDTO } from '../dtos/LeagueMembershipsDTO';
|
||||
import type { UseCaseOutputPort } from '@core/shared/application';
|
||||
import { GetLeagueMembershipsResult } from '@core/racing/application/use-cases/GetLeagueMembershipsUseCase';
|
||||
import { LeagueMembershipsDTO } from '../dtos/LeagueMembershipsDTO';
|
||||
import type { LeagueMemberDTO } from '../dtos/LeagueMemberDTO';
|
||||
|
||||
export interface GetLeagueMembershipsViewModel {
|
||||
memberships: LeagueMembershipsDTO;
|
||||
}
|
||||
|
||||
export class GetLeagueMembershipsPresenter {
|
||||
export class GetLeagueMembershipsPresenter implements UseCaseOutputPort<GetLeagueMembershipsResult> {
|
||||
private result: GetLeagueMembershipsViewModel | null = null;
|
||||
|
||||
reset() {
|
||||
this.result = null;
|
||||
}
|
||||
|
||||
present(output: GetLeagueMembershipsOutputPort) {
|
||||
const members: LeagueMemberDTO[] = output.memberships.members.map(member => ({
|
||||
driverId: member.driverId,
|
||||
driver: member.driver,
|
||||
role: member.role,
|
||||
joinedAt: member.joinedAt,
|
||||
}));
|
||||
present(result: GetLeagueMembershipsResult) {
|
||||
const members: LeagueMemberDTO[] = result.memberships
|
||||
.filter(({ driver }) => driver !== null)
|
||||
.map(({ membership, driver }) => ({
|
||||
driverId: membership.driverId.toString(),
|
||||
driver: {
|
||||
id: driver!.id,
|
||||
iracingId: driver!.iracingId.toString(),
|
||||
name: driver!.name.toString(),
|
||||
country: driver!.country.toString(),
|
||||
joinedAt: driver!.joinedAt.toDate().toISOString(),
|
||||
...(driver!.bio ? { bio: driver!.bio.toString() } : {}),
|
||||
},
|
||||
role: membership.role.toString() as 'owner' | 'manager' | 'member',
|
||||
joinedAt: membership.joinedAt.toDate(),
|
||||
}));
|
||||
this.result = {
|
||||
memberships: {
|
||||
members,
|
||||
|
||||
Reference in New Issue
Block a user