mirror of
https://gitlab.com/mobicoop/v3/service/matcher.git
synced 2026-01-01 13:52:40 +00:00
move route compute to create service as entity creation is not async
This commit is contained in:
@@ -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;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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[];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user