move route compute to create service as entity creation is not async

This commit is contained in:
sbriat
2023-08-22 16:14:36 +02:00
parent 4762c844e1
commit ac8e459e90
27 changed files with 403 additions and 94 deletions

View File

@@ -1,9 +1,7 @@
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 {
export type GetRouteRequestDto = {
roles: Role[];
waypoints: Waypoint[];
georouterSettings: GeorouterSettings;
}
};

View File

@@ -4,10 +4,11 @@ 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/route.mapper';
import { Injectable } from '@nestjs/common';
import { Controller } from '@nestjs/common';
import { GetBasicRouteControllerPort } from '@modules/geography/core/application/ports/get-basic-route-controller.port';
@Injectable()
export class GetRouteController {
@Controller()
export class GetBasicRouteController implements GetBasicRouteControllerPort {
constructor(
private readonly queryBus: QueryBus,
private readonly mapper: RouteMapper,
@@ -15,7 +16,11 @@ export class GetRouteController {
async get(data: GetRouteRequestDto): Promise<RouteResponseDto> {
const route: RouteEntity = await this.queryBus.execute(
new GetRouteQuery(data.roles, data.waypoints, data.georouterSettings),
new GetRouteQuery(data.roles, data.waypoints, {
detailedDistance: false,
detailedDuration: false,
points: true,
}),
);
return this.mapper.toResponse(route);
}

View File

@@ -1,3 +1,4 @@
import { Coordinates } from '@modules/geography/core/application/types/coordinates.type';
import { SpacetimePoint } from '@modules/geography/core/application/types/spacetime-point.type';
export class RouteResponseDto {
@@ -8,5 +9,5 @@ export class RouteResponseDto {
fwdAzimuth: number;
backAzimuth: number;
distanceAzimuth: number;
spacetimePoints: SpacetimePoint[];
points: SpacetimePoint[] | Coordinates[];
}