add route provider in ad module

This commit is contained in:
sbriat
2023-08-21 14:40:04 +02:00
parent 88326dcf6f
commit bff199557a
20 changed files with 330 additions and 46 deletions

View File

@@ -0,0 +1,9 @@
import { GeorouterSettings } from '@modules/geography/core/application/types/georouter-settings.type';
import { Waypoint } from '@modules/geography/core/application/types/waypoint.type';
import { Role } from '@modules/geography/core/domain/route.types';
export class GetRouteRequestDto {
roles: Role[];
waypoints: Waypoint[];
georouterSettings: GeorouterSettings;
}

View File

@@ -0,0 +1,26 @@
import { QueryBus } from '@nestjs/cqrs';
import { RouteResponseDto } from '../dtos/route.response.dto';
import { GetRouteRequestDto } from './dtos/get-route.request.dto';
import { RouteEntity } from '@modules/geography/core/domain/route.entity';
import { GetRouteQuery } from '@modules/geography/core/application/queries/get-route/get-route.query';
import { RouteMapper } from '@modules/geography/geography.mapper';
import { Injectable } from '@nestjs/common';
@Injectable()
export class GetRouteController {
constructor(
private readonly queryBus: QueryBus,
private readonly mapper: RouteMapper,
) {}
async get(data: GetRouteRequestDto): Promise<RouteResponseDto> {
try {
const route: RouteEntity = await this.queryBus.execute(
new GetRouteQuery(data.roles, data.waypoints, data.georouterSettings),
);
return this.mapper.toResponse(route);
} catch (e) {
throw e;
}
}
}

View File

@@ -0,0 +1,12 @@
import { SpacetimePoint } from '@modules/geography/core/application/types/spacetime-point.type';
export class RouteResponseDto {
driverDistance?: number;
driverDuration?: number;
passengerDistance?: number;
passengerDuration?: number;
fwdAzimuth: number;
backAzimuth: number;
distanceAzimuth: number;
spacetimePoints: SpacetimePoint[];
}