mirror of
https://gitlab.com/mobicoop/v3/service/matcher.git
synced 2026-01-01 08:22:41 +00:00
detailed route provider
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { GetRouteRequestDto } from '@modules/geography/interface/controllers/dtos/get-route.request.dto';
|
||||
import { RouteResponseDto } from '@modules/geography/interface/dtos/route.response.dto';
|
||||
|
||||
export interface GetBasicRouteControllerPort {
|
||||
export interface GetRouteControllerPort {
|
||||
get(data: GetRouteRequestDto): Promise<RouteResponseDto>;
|
||||
}
|
||||
@@ -6,7 +6,14 @@ export class GetRouteQuery extends QueryBase {
|
||||
readonly waypoints: Point[];
|
||||
readonly georouterSettings: GeorouterSettings;
|
||||
|
||||
constructor(waypoints: Point[], georouterSettings: GeorouterSettings) {
|
||||
constructor(
|
||||
waypoints: Point[],
|
||||
georouterSettings: GeorouterSettings = {
|
||||
detailedDistance: false,
|
||||
detailedDuration: false,
|
||||
points: true,
|
||||
},
|
||||
) {
|
||||
super();
|
||||
this.waypoints = waypoints;
|
||||
this.georouterSettings = georouterSettings;
|
||||
|
||||
@@ -5,10 +5,10 @@ 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 { Controller } from '@nestjs/common';
|
||||
import { GetBasicRouteControllerPort } from '@modules/geography/core/application/ports/get-basic-route-controller.port';
|
||||
import { GetRouteControllerPort } from '@modules/geography/core/application/ports/get-route-controller.port';
|
||||
|
||||
@Controller()
|
||||
export class GetBasicRouteController implements GetBasicRouteControllerPort {
|
||||
export class GetBasicRouteController implements GetRouteControllerPort {
|
||||
constructor(
|
||||
private readonly queryBus: QueryBus,
|
||||
private readonly mapper: RouteMapper,
|
||||
@@ -16,11 +16,7 @@ export class GetBasicRouteController implements GetBasicRouteControllerPort {
|
||||
|
||||
async get(data: GetRouteRequestDto): Promise<RouteResponseDto> {
|
||||
const route: RouteEntity = await this.queryBus.execute(
|
||||
new GetRouteQuery(data.waypoints, {
|
||||
detailedDistance: false,
|
||||
detailedDuration: false,
|
||||
points: true,
|
||||
}),
|
||||
new GetRouteQuery(data.waypoints),
|
||||
);
|
||||
return this.mapper.toResponse(route);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
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/route.mapper';
|
||||
import { Controller } from '@nestjs/common';
|
||||
import { GetRouteControllerPort } from '@modules/geography/core/application/ports/get-route-controller.port';
|
||||
|
||||
@Controller()
|
||||
export class GetDetailedRouteController implements GetRouteControllerPort {
|
||||
constructor(
|
||||
private readonly queryBus: QueryBus,
|
||||
private readonly mapper: RouteMapper,
|
||||
) {}
|
||||
|
||||
async get(data: GetRouteRequestDto): Promise<RouteResponseDto> {
|
||||
const route: RouteEntity = await this.queryBus.execute(
|
||||
new GetRouteQuery(data.waypoints, {
|
||||
detailedDistance: true,
|
||||
detailedDuration: true,
|
||||
points: true,
|
||||
}),
|
||||
);
|
||||
return this.mapper.toResponse(route);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user