Files
gridpilot.gg/apps/api/src/domain/league/presenters/JoinLeaguePresenter.ts

22 lines
655 B
TypeScript

import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
import type { JoinLeagueResult } from '@core/racing/application/use-cases/JoinLeagueUseCase';
import type { JoinLeagueOutputDTO } from '../dtos/JoinLeagueOutputDTO';
export class JoinLeaguePresenter implements UseCaseOutputPort<JoinLeagueResult> {
private result: JoinLeagueOutputDTO | null = null;
reset() {
this.result = null;
}
present(result: JoinLeagueResult): void {
this.result = {
success: true,
membershipId: result.membership.id.toString(),
};
}
getViewModel(): JoinLeagueOutputDTO | null {
return this.result;
}
}