|
@@ -22,8 +22,10 @@ import { Assignment } from './models/assignment.model';
|
|
|
import { Constraint } from './models/constraint.model';
|
|
|
import { Planning } from './models/planning.model';
|
|
|
import { RunwaySpacing } from './models/runwayspacing.model';
|
|
|
-import { Waypoint } from './models/waypoint.model';
|
|
|
-import { WaypointDto } from './dto/waypoint.dto';
|
|
|
+import { Waypoint } from '../models/waypoint.model';
|
|
|
+import { WaypointDto } from '../dto/waypoint.dto';
|
|
|
+import { Coordinate } from 'src/models/coordinate.model';
|
|
|
+import { CoordinateDto } from 'src/dto/coordinate.dto';
|
|
|
|
|
|
@Controller('airport')
|
|
|
export class AirportController {
|
|
@@ -55,29 +57,33 @@ export class AirportController {
|
|
|
return retval;
|
|
|
}
|
|
|
|
|
|
- private static convertWaypoint<T>(waypoint: Waypoint | WaypointDto): T {
|
|
|
+ private static convertCoordinate<T>(
|
|
|
+ coordinate: Coordinate | CoordinateDto,
|
|
|
+ ): T {
|
|
|
+ return {
|
|
|
+ latitude: coordinate.latitude,
|
|
|
+ longitude: coordinate.longitude,
|
|
|
+ } as T;
|
|
|
+ }
|
|
|
+
|
|
|
+ private static convertWaypoint<T, C>(waypoint: Waypoint | WaypointDto): T {
|
|
|
return {
|
|
|
identifier: waypoint.identifier,
|
|
|
- latitude: waypoint.latitude,
|
|
|
- longitude: waypoint.longitude,
|
|
|
+ coordinate: AirportController.convertCoordinate<C>(waypoint.coordinate),
|
|
|
} as T;
|
|
|
}
|
|
|
|
|
|
- private static convertWaypoints<T>(
|
|
|
+ private static convertWaypoints<T, C>(
|
|
|
waypoints: Waypoint[] | WaypointDto[],
|
|
|
): T[] {
|
|
|
const retval: T[] = [];
|
|
|
waypoints.forEach((waypoint) =>
|
|
|
- retval.push({
|
|
|
- identifier: waypoint.identifier,
|
|
|
- latitude: waypoint.latitude,
|
|
|
- longitude: waypoint.longitude,
|
|
|
- } as T),
|
|
|
+ retval.push(AirportController.convertWaypoint<T, C>(waypoint)),
|
|
|
);
|
|
|
return retval;
|
|
|
}
|
|
|
|
|
|
- private static convertArrivalRoutes<T, C, W>(
|
|
|
+ private static convertArrivalRoutes<T, C, W, WC>(
|
|
|
routes: ArrivalRoute[] | ArrivalRouteDto[],
|
|
|
): T[] {
|
|
|
const retval: T[] = [];
|
|
@@ -85,7 +91,7 @@ export class AirportController {
|
|
|
retval.push({
|
|
|
arrival: route.runway,
|
|
|
runway: route.runway,
|
|
|
- waypoints: AirportController.convertWaypoints<W>(route.waypoints),
|
|
|
+ waypoints: AirportController.convertWaypoints<W, WC>(route.waypoints),
|
|
|
constraints: AirportController.convertConstraints<C>(route.constraints),
|
|
|
} as T),
|
|
|
);
|
|
@@ -140,7 +146,7 @@ export class AirportController {
|
|
|
|
|
|
return {
|
|
|
icao: airport.icao,
|
|
|
- location: AirportController.convertWaypoint<WaypointDto>(
|
|
|
+ location: AirportController.convertWaypoint<WaypointDto, CoordinateDto>(
|
|
|
airport.location,
|
|
|
),
|
|
|
elevation: airport.elevation,
|
|
@@ -150,7 +156,8 @@ export class AirportController {
|
|
|
arrivalRoutes: AirportController.convertArrivalRoutes<
|
|
|
ArrivalRouteDto,
|
|
|
ConstraintDto,
|
|
|
- WaypointDto
|
|
|
+ WaypointDto,
|
|
|
+ CoordinateDto
|
|
|
>(airport.arrivalRoutes),
|
|
|
spacings: AirportController.convertRunwaySpacings<RunwaySpacingDto>(
|
|
|
airport.spacings,
|
|
@@ -166,7 +173,9 @@ export class AirportController {
|
|
|
|
|
|
return {
|
|
|
icao: airport.icao,
|
|
|
- location: AirportController.convertWaypoint<Waypoint>(airport.location),
|
|
|
+ location: AirportController.convertWaypoint<Waypoint, Coordinate>(
|
|
|
+ airport.location,
|
|
|
+ ),
|
|
|
elevation: airport.elevation,
|
|
|
upperConstraints: AirportController.convertConstraints<Constraint>(
|
|
|
airport.upperConstraints,
|
|
@@ -174,7 +183,8 @@ export class AirportController {
|
|
|
arrivalRoutes: AirportController.convertArrivalRoutes<
|
|
|
ArrivalRoute,
|
|
|
Constraint,
|
|
|
- Waypoint
|
|
|
+ Waypoint,
|
|
|
+ Coordinate
|
|
|
>(airport.arrivalRoutes),
|
|
|
spacings: AirportController.convertRunwaySpacings<RunwaySpacing>(
|
|
|
airport.spacings,
|