From 7c040d2453906184db98ed521684dfb48b4e1984 Mon Sep 17 00:00:00 2001
From: rokibulislam <rrcucse.11@gmail.com>
Date: Mon, 22 Apr 2024 16:52:58 +0200
Subject: [PATCH] update rest api

---
 .../api/flight/requests/FlightRequest.java    |  2 ++
 .../java/cz/muni/fi/pa165/dao/Flight.java     | 14 +++++++---
 .../cz/muni/fi/pa165/dao/FlightPilot.java     | 24 +++++++++++++++++
 .../cz/muni/fi/pa165/dao/FlightSteward.java   | 26 +++++++++++++++++++
 .../muni/fi/pa165/rest/FlightController.java  |  9 ++++---
 .../rest/FlightRealizationController.java     |  3 +--
 .../fi/pa165/rest/IssueReportController.java  |  3 +--
 7 files changed, 70 insertions(+), 11 deletions(-)
 create mode 100644 airports-flight-service/src/main/java/cz/muni/fi/pa165/dao/FlightPilot.java
 create mode 100644 airports-flight-service/src/main/java/cz/muni/fi/pa165/dao/FlightSteward.java

diff --git a/airport-manager-api/src/main/java/cz/muni/fi/pa165/api/flight/requests/FlightRequest.java b/airport-manager-api/src/main/java/cz/muni/fi/pa165/api/flight/requests/FlightRequest.java
index a22078c..c77f409 100644
--- a/airport-manager-api/src/main/java/cz/muni/fi/pa165/api/flight/requests/FlightRequest.java
+++ b/airport-manager-api/src/main/java/cz/muni/fi/pa165/api/flight/requests/FlightRequest.java
@@ -14,4 +14,6 @@ public class FlightRequest {
     private UUID origin;
     private UUID destination;
     private UUID planeId;
+    private List<UUID> pilotIds;
+    private List<UUID> stewardIds;
 }
diff --git a/airports-flight-service/src/main/java/cz/muni/fi/pa165/dao/Flight.java b/airports-flight-service/src/main/java/cz/muni/fi/pa165/dao/Flight.java
index b8134e1..9ac8cd3 100644
--- a/airports-flight-service/src/main/java/cz/muni/fi/pa165/dao/Flight.java
+++ b/airports-flight-service/src/main/java/cz/muni/fi/pa165/dao/Flight.java
@@ -1,14 +1,18 @@
 package cz.muni.fi.pa165.dao;
 
 import cz.muni.fi.pa165.Constants;
+import cz.muni.fi.pa165.api.employee.Steward;
 import lombok.Data;
 
 import javax.persistence.*;
 import java.io.Serializable;
 import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.UUID;
 
+import java.util.Set;
+
 @Data
 @Entity
 @Table(name = "flight", schema = Constants.FLIGHT_SCHEMA)
@@ -21,8 +25,10 @@ public class Flight implements Serializable {
     private UUID destination;
     private UUID planeId;
 
-//    @ElementCollection
-//    private List<Long> pilotIds;
-//    @ElementCollection
-//    private List<Long> stewardIds;
+    @OneToMany(mappedBy = "flightId", cascade = CascadeType.ALL, orphanRemoval = true)
+    private Set<FlightSteward> stewardIds;
+
+
+    @OneToMany(mappedBy = "flightId", cascade = CascadeType.ALL, orphanRemoval = true)
+    private Set<FlightPilot> pilotIds;
 }
diff --git a/airports-flight-service/src/main/java/cz/muni/fi/pa165/dao/FlightPilot.java b/airports-flight-service/src/main/java/cz/muni/fi/pa165/dao/FlightPilot.java
new file mode 100644
index 0000000..cecd26d
--- /dev/null
+++ b/airports-flight-service/src/main/java/cz/muni/fi/pa165/dao/FlightPilot.java
@@ -0,0 +1,24 @@
+package cz.muni.fi.pa165.dao;
+
+import cz.muni.fi.pa165.Constants;
+import lombok.Data;
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.UUID;
+
+@Data
+@Entity
+@Table(name = "flight_pilot", schema = "flight_pilot")
+@Inheritance(strategy = InheritanceType.JOINED)
+public class FlightPilot implements Serializable {
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.AUTO)
+    private UUID id;
+
+    private UUID pilotId;
+
+    @ManyToOne
+    @JoinColumn(name = "flight_id")
+    private Flight flightId;
+}
diff --git a/airports-flight-service/src/main/java/cz/muni/fi/pa165/dao/FlightSteward.java b/airports-flight-service/src/main/java/cz/muni/fi/pa165/dao/FlightSteward.java
new file mode 100644
index 0000000..4ffba9c
--- /dev/null
+++ b/airports-flight-service/src/main/java/cz/muni/fi/pa165/dao/FlightSteward.java
@@ -0,0 +1,26 @@
+package cz.muni.fi.pa165.dao;
+
+
+import cz.muni.fi.pa165.Constants;
+import lombok.Data;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.UUID;
+
+@Data
+@Entity
+@Table(name = "flight_steward", schema = "flight_steward")
+@Inheritance(strategy = InheritanceType.JOINED)
+public class FlightSteward implements Serializable {
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.AUTO)
+    private UUID id;
+
+    private UUID stewardId;
+
+    @ManyToOne
+    @JoinColumn(name = "flight_id")
+    private Flight flightId;
+}
diff --git a/airports-flight-service/src/main/java/cz/muni/fi/pa165/rest/FlightController.java b/airports-flight-service/src/main/java/cz/muni/fi/pa165/rest/FlightController.java
index c312652..926cd2b 100644
--- a/airports-flight-service/src/main/java/cz/muni/fi/pa165/rest/FlightController.java
+++ b/airports-flight-service/src/main/java/cz/muni/fi/pa165/rest/FlightController.java
@@ -5,6 +5,8 @@ import cz.muni.fi.pa165.api.flight.requests.FlightRequest;
 import cz.muni.fi.pa165.facade.FlightFacade;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 import java.util.List;
 import java.util.UUID;
@@ -33,12 +35,13 @@ public class FlightController {
     @GetMapping("/{id}")
     public Flight getFlight(@PathVariable UUID id) {
         return flightFacade.getFlight(id);
-
     }
 
     // Create a new flight
     @PostMapping
     public Flight createFlight(@RequestBody FlightRequest flightRequest) {
+        System.out.println("Get create Flights");
+        System.out.println(flightRequest);
         return flightFacade.createFlight(flightRequest);
     }
 
@@ -55,11 +58,11 @@ public class FlightController {
         return flightFacade.updateFlight(id, flightRequest);
     }
 
-    /*
+
     @DeleteMapping("/{id}")
     public ResponseEntity<String> deleteFlight(@PathVariable(value = "id") UUID id) {
         flightFacade.deleteFlight(id);
         return new ResponseEntity<>("Flight deleted sucessfully", HttpStatus.OK);
     }
-     */
+
 }
diff --git a/airports-flight-service/src/main/java/cz/muni/fi/pa165/rest/FlightRealizationController.java b/airports-flight-service/src/main/java/cz/muni/fi/pa165/rest/FlightRealizationController.java
index 76dc557..bb4e592 100644
--- a/airports-flight-service/src/main/java/cz/muni/fi/pa165/rest/FlightRealizationController.java
+++ b/airports-flight-service/src/main/java/cz/muni/fi/pa165/rest/FlightRealizationController.java
@@ -50,11 +50,10 @@ public class FlightRealizationController {
         return flightRealizationFacade.updateFlightRealization(id, flightRealizationRequest);
     }
 
-    /*
+
     @DeleteMapping("/{id}")
     public ResponseEntity<String> deleteFlightRealization(@PathVariable UUID id) {
         flightRealizationFacade.deleteFlightRealization(id);
         return new ResponseEntity<>("Flight Realization deleted sucessfully", HttpStatus.OK);
     }
-     */
 }
diff --git a/airports-flight-service/src/main/java/cz/muni/fi/pa165/rest/IssueReportController.java b/airports-flight-service/src/main/java/cz/muni/fi/pa165/rest/IssueReportController.java
index 1620b1c..22074b1 100644
--- a/airports-flight-service/src/main/java/cz/muni/fi/pa165/rest/IssueReportController.java
+++ b/airports-flight-service/src/main/java/cz/muni/fi/pa165/rest/IssueReportController.java
@@ -72,11 +72,10 @@ public class IssueReportController {
         return issueReportFacade.updateIssueReport(id, issueReportRequest);
     }
 
-    /*
+
     @DeleteMapping("/{id}")
     public ResponseEntity<String> deleteIssueReport(@PathVariable(value = "id") UUID id) {
         issueReportFacade.deleteIssueReport(id);
         return new ResponseEntity<>("Issue deleted sucessfully", HttpStatus.OK);
     }
-    */
 }
-- 
GitLab