Ver Fonte

define a generic folder

Sven Czarnian há 2 anos atrás
pai
commit
7a41dd0fb2

+ 8 - 33
src/airport/airport.controller.ts

@@ -22,10 +22,11 @@ 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 { Coordinate } from 'src/models/coordinate.model';
-import { CoordinateDto } from 'src/dto/coordinate.dto';
+import { Waypoint } from '../generic/models/waypoint.model';
+import { WaypointDto } from '../generic/dto/waypoint.dto';
+import { Coordinate } from 'src/generic/models/coordinate.model';
+import { CoordinateDto } from 'src/generic/dto/coordinate.dto';
+import { WaypointConverter } from 'src/generic/converters';
 
 @Controller('airport')
 export class AirportController {
@@ -57,32 +58,6 @@ export class AirportController {
     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>(
     routes: ArrivalRoute[] | ArrivalRouteDto[],
   ): T[] {
@@ -91,7 +66,7 @@ export class AirportController {
       retval.push({
         arrival: 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),
       } as T),
     );
@@ -146,7 +121,7 @@ export class AirportController {
 
     return {
       icao: airport.icao,
-      location: AirportController.convertWaypoint<WaypointDto, CoordinateDto>(
+      location: WaypointConverter.convert<WaypointDto, CoordinateDto>(
         airport.location,
       ),
       elevation: airport.elevation,
@@ -173,7 +148,7 @@ export class AirportController {
 
     return {
       icao: airport.icao,
-      location: AirportController.convertWaypoint<Waypoint, Coordinate>(
+      location: WaypointConverter.convert<Waypoint, Coordinate>(
         airport.location,
       ),
       elevation: airport.elevation,

+ 1 - 1
src/airport/dto/airport.dto.ts

@@ -4,7 +4,7 @@ import { ConstraintDto } from './constraint.dto';
 import { ArrivalRouteDto } from './arrivalroute.dto';
 import { RunwaySpacingDto } from './runwayspacing.dto';
 import { PlanningDto } from './planning.dto';
-import { WaypointDto } from '../../dto/waypoint.dto';
+import { WaypointDto } from '../../generic/dto/waypoint.dto';
 
 export class AirportDto {
   @IsNotEmpty()

+ 1 - 1
src/airport/dto/arrivalroute.dto.ts

@@ -1,7 +1,7 @@
 import { IsNotEmpty, IsOptional } from 'class-validator';
 import { ApiProperty } from '@nestjs/swagger';
 import { ConstraintDto } from './constraint.dto';
-import { WaypointDto } from '../../dto/waypoint.dto';
+import { WaypointDto } from '../../generic/dto/waypoint.dto';
 
 export class ArrivalRouteDto {
   @IsNotEmpty()

+ 1 - 1
src/airport/models/airport.model.ts

@@ -4,7 +4,7 @@ import { ArrivalRoute, ArrivalRouteSchema } from './arrivalroute.model';
 import { Constraint, ConstraintSchema } from './constraint.model';
 import { Planning, PlanningSchema } from './planning.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;
 

+ 1 - 1
src/airport/models/arrivalroute.model.ts

@@ -1,7 +1,7 @@
 import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
 import { Document } from 'mongoose';
 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;
 

+ 11 - 0
src/generic/converters/coordinate.ts

@@ -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 - 0
src/generic/converters/index.ts

@@ -0,0 +1,4 @@
+import { CoordinateConverter } from './coordinate';
+import { WaypointConverter } from './waypoint';
+
+export { CoordinateConverter, WaypointConverter };

+ 20 - 0
src/generic/converters/waypoint.ts

@@ -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;
+  }
+}

src/dto/coordinate.dto.ts → src/generic/dto/coordinate.dto.ts


src/dto/waypoint.dto.ts → src/generic/dto/waypoint.dto.ts


src/models/coordinate.model.ts → src/generic/models/coordinate.model.ts


src/models/waypoint.model.ts → src/generic/models/waypoint.model.ts