define a generic folder
This commit is contained in:
@@ -22,10 +22,11 @@ import { Assignment } from './models/assignment.model';
|
|||||||
import { Constraint } from './models/constraint.model';
|
import { Constraint } from './models/constraint.model';
|
||||||
import { Planning } from './models/planning.model';
|
import { Planning } from './models/planning.model';
|
||||||
import { RunwaySpacing } from './models/runwayspacing.model';
|
import { RunwaySpacing } from './models/runwayspacing.model';
|
||||||
import { Waypoint } from '../models/waypoint.model';
|
import { Waypoint } from '../generic/models/waypoint.model';
|
||||||
import { WaypointDto } from '../dto/waypoint.dto';
|
import { WaypointDto } from '../generic/dto/waypoint.dto';
|
||||||
import { Coordinate } from 'src/models/coordinate.model';
|
import { Coordinate } from 'src/generic/models/coordinate.model';
|
||||||
import { CoordinateDto } from 'src/dto/coordinate.dto';
|
import { CoordinateDto } from 'src/generic/dto/coordinate.dto';
|
||||||
|
import { WaypointConverter } from 'src/generic/converters';
|
||||||
|
|
||||||
@Controller('airport')
|
@Controller('airport')
|
||||||
export class AirportController {
|
export class AirportController {
|
||||||
@@ -57,32 +58,6 @@ export class AirportController {
|
|||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
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,
|
|
||||||
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(AirportController.convertWaypoint<T, C>(waypoint)),
|
|
||||||
);
|
|
||||||
return retval;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static convertArrivalRoutes<T, C, W, WC>(
|
private static convertArrivalRoutes<T, C, W, WC>(
|
||||||
routes: ArrivalRoute[] | ArrivalRouteDto[],
|
routes: ArrivalRoute[] | ArrivalRouteDto[],
|
||||||
): T[] {
|
): T[] {
|
||||||
@@ -91,7 +66,7 @@ export class AirportController {
|
|||||||
retval.push({
|
retval.push({
|
||||||
arrival: route.runway,
|
arrival: route.runway,
|
||||||
runway: route.runway,
|
runway: route.runway,
|
||||||
waypoints: AirportController.convertWaypoints<W, WC>(route.waypoints),
|
waypoints: WaypointConverter.convertList<W, WC>(route.waypoints),
|
||||||
constraints: AirportController.convertConstraints<C>(route.constraints),
|
constraints: AirportController.convertConstraints<C>(route.constraints),
|
||||||
} as T),
|
} as T),
|
||||||
);
|
);
|
||||||
@@ -146,7 +121,7 @@ export class AirportController {
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
icao: airport.icao,
|
icao: airport.icao,
|
||||||
location: AirportController.convertWaypoint<WaypointDto, CoordinateDto>(
|
location: WaypointConverter.convert<WaypointDto, CoordinateDto>(
|
||||||
airport.location,
|
airport.location,
|
||||||
),
|
),
|
||||||
elevation: airport.elevation,
|
elevation: airport.elevation,
|
||||||
@@ -173,7 +148,7 @@ export class AirportController {
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
icao: airport.icao,
|
icao: airport.icao,
|
||||||
location: AirportController.convertWaypoint<Waypoint, Coordinate>(
|
location: WaypointConverter.convert<Waypoint, Coordinate>(
|
||||||
airport.location,
|
airport.location,
|
||||||
),
|
),
|
||||||
elevation: airport.elevation,
|
elevation: airport.elevation,
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { ConstraintDto } from './constraint.dto';
|
|||||||
import { ArrivalRouteDto } from './arrivalroute.dto';
|
import { ArrivalRouteDto } from './arrivalroute.dto';
|
||||||
import { RunwaySpacingDto } from './runwayspacing.dto';
|
import { RunwaySpacingDto } from './runwayspacing.dto';
|
||||||
import { PlanningDto } from './planning.dto';
|
import { PlanningDto } from './planning.dto';
|
||||||
import { WaypointDto } from '../../dto/waypoint.dto';
|
import { WaypointDto } from '../../generic/dto/waypoint.dto';
|
||||||
|
|
||||||
export class AirportDto {
|
export class AirportDto {
|
||||||
@IsNotEmpty()
|
@IsNotEmpty()
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { IsNotEmpty, IsOptional } from 'class-validator';
|
import { IsNotEmpty, IsOptional } from 'class-validator';
|
||||||
import { ApiProperty } from '@nestjs/swagger';
|
import { ApiProperty } from '@nestjs/swagger';
|
||||||
import { ConstraintDto } from './constraint.dto';
|
import { ConstraintDto } from './constraint.dto';
|
||||||
import { WaypointDto } from '../../dto/waypoint.dto';
|
import { WaypointDto } from '../../generic/dto/waypoint.dto';
|
||||||
|
|
||||||
export class ArrivalRouteDto {
|
export class ArrivalRouteDto {
|
||||||
@IsNotEmpty()
|
@IsNotEmpty()
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { ArrivalRoute, ArrivalRouteSchema } from './arrivalroute.model';
|
|||||||
import { Constraint, ConstraintSchema } from './constraint.model';
|
import { Constraint, ConstraintSchema } from './constraint.model';
|
||||||
import { Planning, PlanningSchema } from './planning.model';
|
import { Planning, PlanningSchema } from './planning.model';
|
||||||
import { RunwaySpacing, RunwaySpacingSchema } from './runwayspacing.model';
|
import { RunwaySpacing, RunwaySpacingSchema } from './runwayspacing.model';
|
||||||
import { Waypoint } from '../../models/waypoint.model';
|
import { Waypoint } from '../../generic/models/waypoint.model';
|
||||||
|
|
||||||
export type AirportDocument = Airport & Document;
|
export type AirportDocument = Airport & Document;
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
|
import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
|
||||||
import { Document } from 'mongoose';
|
import { Document } from 'mongoose';
|
||||||
import { Constraint, ConstraintSchema } from './constraint.model';
|
import { Constraint, ConstraintSchema } from './constraint.model';
|
||||||
import { Waypoint, WaypointSchema } from '../../models/waypoint.model';
|
import { Waypoint, WaypointSchema } from '../../generic/models/waypoint.model';
|
||||||
|
|
||||||
export type ArrivalRouteDocument = ArrivalRoute & Document;
|
export type ArrivalRouteDocument = ArrivalRoute & Document;
|
||||||
|
|
||||||
|
|||||||
11
src/generic/converters/coordinate.ts
Normal file
11
src/generic/converters/coordinate.ts
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
import { CoordinateDto } from '../dto/coordinate.dto';
|
||||||
|
import { Coordinate } from '../models/coordinate.model';
|
||||||
|
|
||||||
|
export class CoordinateConverter {
|
||||||
|
static convert<T>(coordinate: Coordinate | CoordinateDto): T {
|
||||||
|
return {
|
||||||
|
latitude: coordinate.latitude,
|
||||||
|
longitude: coordinate.longitude,
|
||||||
|
} as T;
|
||||||
|
}
|
||||||
|
}
|
||||||
4
src/generic/converters/index.ts
Normal file
4
src/generic/converters/index.ts
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
import { CoordinateConverter } from './coordinate';
|
||||||
|
import { WaypointConverter } from './waypoint';
|
||||||
|
|
||||||
|
export { CoordinateConverter, WaypointConverter };
|
||||||
20
src/generic/converters/waypoint.ts
Normal file
20
src/generic/converters/waypoint.ts
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
import { WaypointDto } from '../dto/waypoint.dto';
|
||||||
|
import { Waypoint } from '../models/waypoint.model';
|
||||||
|
import { CoordinateConverter } from './coordinate';
|
||||||
|
|
||||||
|
export class WaypointConverter {
|
||||||
|
static convert<T, C>(waypoint: Waypoint | WaypointDto): T {
|
||||||
|
return {
|
||||||
|
identifier: waypoint.identifier,
|
||||||
|
coordinate: CoordinateConverter.convert<C>(waypoint.coordinate),
|
||||||
|
} as T;
|
||||||
|
}
|
||||||
|
|
||||||
|
static convertList<T, E>(waypoints: Waypoint[] | WaypointDto[]): T[] {
|
||||||
|
const retval: T[] = [];
|
||||||
|
waypoints.forEach((waypoint) =>
|
||||||
|
retval.push(WaypointConverter.convert<T, E>(waypoint)),
|
||||||
|
);
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user