fix issues in core
This commit is contained in:
@@ -4,7 +4,9 @@ import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorC
|
||||
import type { NotificationService } from '../../../notifications/application/ports/NotificationService';
|
||||
import type { NotificationType } from '../../../notifications/domain/types/NotificationTypes';
|
||||
import type { RaceEvent } from '../../domain/entities/RaceEvent';
|
||||
import type { Result as RaceResult } from '../../domain/entities/Result';
|
||||
import type { Result as RaceResult } from '../../domain/entities/result/Result';
|
||||
import { Position } from '../../domain/entities/result/Position';
|
||||
import { IncidentCount } from '../../domain/entities/result/IncidentCount';
|
||||
import type { IRaceEventRepository } from '../../domain/repositories/IRaceEventRepository';
|
||||
import type { IResultRepository } from '../../domain/repositories/IResultRepository';
|
||||
import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository';
|
||||
@@ -72,7 +74,7 @@ export class SendPerformanceSummaryUseCase {
|
||||
}
|
||||
|
||||
if (input.triggeredById !== input.driverId) {
|
||||
const membership = await this.membershipRepository.getMembership(league.id, input.triggeredById);
|
||||
const membership = await this.membershipRepository.getMembership(league.id.toString(), input.triggeredById);
|
||||
if (!membership || !isLeagueStewardOrHigherRole(membership.role)) {
|
||||
return Result.err({
|
||||
code: 'INSUFFICIENT_PERMISSIONS',
|
||||
@@ -90,7 +92,7 @@ export class SendPerformanceSummaryUseCase {
|
||||
}
|
||||
|
||||
const results = await this.resultRepository.findByRaceId(mainRaceSession.id);
|
||||
const driverResult = results.find(r => r.driverId === input.driverId);
|
||||
const driverResult = results.find(r => r.driverId.toString() === input.driverId);
|
||||
|
||||
if (!driverResult) {
|
||||
return Result.err({
|
||||
@@ -101,11 +103,11 @@ export class SendPerformanceSummaryUseCase {
|
||||
|
||||
let notificationsSent = 0;
|
||||
|
||||
await this.sendPerformanceSummaryNotification(input.driverId, raceEvent, driverResult, league.id);
|
||||
await this.sendPerformanceSummaryNotification(input.driverId, raceEvent, driverResult, league.id.toString());
|
||||
notificationsSent += 1;
|
||||
|
||||
const result: SendPerformanceSummaryResult = {
|
||||
leagueId: league.id,
|
||||
leagueId: league.id.toString(),
|
||||
raceId: raceEvent.id,
|
||||
driverId: input.driverId,
|
||||
notificationsSent,
|
||||
@@ -131,10 +133,12 @@ export class SendPerformanceSummaryUseCase {
|
||||
const positionChange = driverResult?.getPositionChange() ?? 0;
|
||||
const incidents = driverResult?.incidents ?? 0;
|
||||
|
||||
const provisionalRatingChange = this.calculateProvisionalRatingChange(driverResult?.position, driverResult?.incidents);
|
||||
const provisionalRatingChange = this.calculateProvisionalRatingChange(driverResult?.position?.toNumber(), driverResult?.incidents?.toNumber());
|
||||
|
||||
const title = `Race Complete: ${raceEvent.name}`;
|
||||
const body = this.buildPerformanceSummaryBody(position, positionChange, incidents, provisionalRatingChange);
|
||||
const positionValue = position instanceof Position ? position.toNumber() : position;
|
||||
const incidentValue = incidents instanceof IncidentCount ? incidents.toNumber() : incidents;
|
||||
const body = this.buildPerformanceSummaryBody(positionValue, positionChange, incidentValue, provisionalRatingChange);
|
||||
|
||||
await this.notificationService.sendNotification({
|
||||
recipientId: driverId,
|
||||
@@ -147,9 +151,9 @@ export class SendPerformanceSummaryUseCase {
|
||||
raceEventId: raceEvent.id,
|
||||
sessionId: raceEvent.getMainRaceSession()?.id ?? '',
|
||||
leagueId,
|
||||
position,
|
||||
position: positionValue,
|
||||
positionChange,
|
||||
incidents,
|
||||
incidents: incidentValue,
|
||||
provisionalRatingChange,
|
||||
},
|
||||
actions: [
|
||||
|
||||
Reference in New Issue
Block a user