28 lines
1.1 KiB
TypeScript
28 lines
1.1 KiB
TypeScript
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 { GetBasicRouteControllerPort } from '@modules/geography/core/application/ports/get-basic-route-controller.port';
|
|
|
|
@Controller()
|
|
export class GetBasicRouteController implements GetBasicRouteControllerPort {
|
|
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: false,
|
|
detailedDuration: false,
|
|
points: true,
|
|
}),
|
|
);
|
|
return this.mapper.toResponse(route);
|
|
}
|
|
}
|