mirror of
https://gitlab.com/mobicoop/v3/service/matcher.git
synced 2026-01-01 14:02:39 +00:00
add route provider in ad module
This commit is contained in:
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
12
src/modules/geography/interface/dtos/route.response.dto.ts
Normal file
12
src/modules/geography/interface/dtos/route.response.dto.ts
Normal 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[];
|
||||
}
|
||||
Reference in New Issue
Block a user