move generic models and DTOs to the root folder and split waypoint and coordinate

This commit is contained in:
Sven Czarnian
2022-10-23 13:55:38 +02:00
parent 229c11915b
commit 0535873da0
9 changed files with 76 additions and 38 deletions

View File

@@ -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 {
identifier: waypoint.identifier,
latitude: waypoint.latitude,
longitude: waypoint.longitude,
latitude: coordinate.latitude,
longitude: coordinate.longitude,
} as T;
}
private static convertWaypoints<T>(
private static convertWaypoint<T, C>(waypoint: Waypoint | WaypointDto): T {
return {
identifier: waypoint.identifier,
coordinate: AirportController.convertCoordinate<C>(waypoint.coordinate),
} as 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,