refactor driver module (wip)
This commit is contained in:
@@ -1,30 +1,31 @@
|
||||
import type { TeamJoinRequestsOutputPort } from '@core/racing/application/ports/output/TeamJoinRequestsOutputPort';
|
||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||
import type { GetTeamJoinRequestsResult } from '@core/racing/application/use-cases/GetTeamJoinRequestsUseCase';
|
||||
import type { GetTeamJoinRequestsOutputDTO } from '../dtos/GetTeamJoinRequestsOutputDTO';
|
||||
|
||||
export class TeamJoinRequestsPresenter {
|
||||
export class TeamJoinRequestsPresenter implements UseCaseOutputPort<GetTeamJoinRequestsResult> {
|
||||
private result: GetTeamJoinRequestsOutputDTO | null = null;
|
||||
|
||||
reset() {
|
||||
this.result = null;
|
||||
}
|
||||
|
||||
async present(outputPort: TeamJoinRequestsOutputPort): Promise<void> {
|
||||
present(result: GetTeamJoinRequestsResult): void {
|
||||
this.result = {
|
||||
requests: outputPort.requests.map(request => ({
|
||||
requestId: request.requestId,
|
||||
requests: result.joinRequests.map(request => ({
|
||||
requestId: request.id,
|
||||
driverId: request.driverId,
|
||||
driverName: request.driverName,
|
||||
driverName: request.driver.name.toString(),
|
||||
teamId: request.teamId,
|
||||
status: request.status,
|
||||
status: 'pending',
|
||||
requestedAt: request.requestedAt.toISOString(),
|
||||
avatarUrl: request.avatarUrl,
|
||||
avatarUrl: '', // TODO: get avatar
|
||||
})),
|
||||
pendingCount: outputPort.pendingCount,
|
||||
totalCount: outputPort.totalCount,
|
||||
pendingCount: result.joinRequests.length,
|
||||
totalCount: result.joinRequests.length,
|
||||
};
|
||||
}
|
||||
|
||||
getViewModel(): GetTeamJoinRequestsOutputDTO | null {
|
||||
getResponseModel(): GetTeamJoinRequestsOutputDTO | null {
|
||||
return this.result;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user