diff --git a/Backend/src/main/java/com/mobilecomputing/pecunia/controller/TransactionController.java b/Backend/src/main/java/com/mobilecomputing/pecunia/controller/TransactionController.java index 0e5f08c76c53b864f732dbf779c45274129f6efd..cea805daf8827d7596a42dbe457214574e038fe3 100644 --- a/Backend/src/main/java/com/mobilecomputing/pecunia/controller/TransactionController.java +++ b/Backend/src/main/java/com/mobilecomputing/pecunia/controller/TransactionController.java @@ -1,4 +1,56 @@ package com.mobilecomputing.pecunia.controller; +import com.mobilecomputing.pecunia.model.Transaction; +import com.mobilecomputing.pecunia.model.Trip; +import com.mobilecomputing.pecunia.repository.TransactionRepository; +import com.mobilecomputing.pecunia.repository.TripRepository; +import com.mobilecomputing.pecunia.repository.UserRepository; +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.ArrayList; +import java.util.NoSuchElementException; + +@RestController +@RequestMapping(value = "/transaction") public class TransactionController { + @Autowired + TransactionRepository transactionRepository; + @Autowired + TripRepository tripRepository; + @Autowired + UserRepository userRepository; + + @GetMapping("/getTransactionById") + public ResponseEntity getTransactionById(@RequestAttribute String id) { + try { + return ResponseEntity.ok(transactionRepository.findById(id).get()); + } catch (NoSuchElementException e) { + return ResponseEntity.status(HttpStatus.NOT_FOUND).body("Transaction not found"); + } + } + + @GetMapping("/getAllTransactionsByTrip") + public ResponseEntity getAllTransactionsByTrip(@RequestParam String tripId) { + try{ + return ResponseEntity.ok(tripRepository.findById(tripId).get().getTransactions()); + }catch (NoSuchElementException e){ + return ResponseEntity.status(HttpStatus.NOT_FOUND).body("Trip not found"); + } + } + + @PostMapping("/addTransactionToTrip") + public ResponseEntity addTransactionToTrip(@RequestBody Transaction transaction,@RequestParam String tripId){ + try{ + Trip trip = tripRepository.findById(tripId).get(); + String newTransId= transactionRepository.save(transaction).getTransactionId(); + trip.getTransactions().add(newTransId); + return ResponseEntity.ok(newTransId); + }catch (NoSuchElementException e){ + return ResponseEntity.status(HttpStatus.NOT_FOUND).body("Trip not found"); + } + + } } diff --git a/Backend/src/main/java/com/mobilecomputing/pecunia/controller/TripController.java b/Backend/src/main/java/com/mobilecomputing/pecunia/controller/TripController.java index a2b06f871866883b3adc556581edd6a7f035f708..4f0fc2309b1db532761c7d7cb8ea8027a3d13329 100644 --- a/Backend/src/main/java/com/mobilecomputing/pecunia/controller/TripController.java +++ b/Backend/src/main/java/com/mobilecomputing/pecunia/controller/TripController.java @@ -13,9 +13,10 @@ import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.NoSuchElementException; @RestController -@RequestMapping(value = "/trip", method = RequestMethod.GET) +@RequestMapping(value = "/trip") public class TripController { @Autowired @@ -25,13 +26,11 @@ public class TripController { @GetMapping("/getTripById") public ResponseEntity getTripById(@RequestParam String id) { - Trip response = tripRepository.findById(id).get(); - - if(response==null){ - return ResponseEntity.status(HttpStatus.NOT_FOUND).body(null); + try{ + return ResponseEntity.ok(tripRepository.findById(id).get()); + }catch (NoSuchElementException e){ + return ResponseEntity.status(HttpStatus.NOT_FOUND).body("Trip not found"); } - - return ResponseEntity.ok(tripRepository.findById(id).get()); } @GetMapping("/getAllTrips") @@ -49,8 +48,7 @@ public class TripController { @PostMapping("/addTrip") public ResponseEntity addTrip(@RequestBody Trip trip) { - - return ResponseEntity.ok(tripRepository.save(trip)); + return ResponseEntity.ok(tripRepository.save(trip).getTripId()); } @GetMapping("/getTripsByUser") @@ -85,4 +83,15 @@ public class TripController { return ResponseEntity.ok(response); } + + @DeleteMapping("/deleteTrip") + public ResponseEntity deleteTrip(@RequestParam String id){ + try{ + tripRepository.findById(id).get(); + tripRepository.deleteById(id); + return ResponseEntity.ok(HttpStatus.OK); + }catch (NoSuchElementException e){ + return ResponseEntity.status(HttpStatus.NOT_FOUND).body("Trip not found"); + } + } } diff --git a/Backend/src/main/java/com/mobilecomputing/pecunia/controller/UserController.java b/Backend/src/main/java/com/mobilecomputing/pecunia/controller/UserController.java index e80fe230a248815b23cbc0664fe7a07c5f6e690a..ff17e3120cf16486602330bae745d26c3f7e726d 100644 --- a/Backend/src/main/java/com/mobilecomputing/pecunia/controller/UserController.java +++ b/Backend/src/main/java/com/mobilecomputing/pecunia/controller/UserController.java @@ -12,6 +12,7 @@ import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; +import java.util.NoSuchElementException; import java.util.Optional; @RestController @@ -24,11 +25,12 @@ public class UserController { @GetMapping("/getByEMail") public ResponseEntity getUserByEmail(@RequestParam String eMail) { - User response = userRepository.findById(eMail).get(); - if (response != null) { + try{ + User response = userRepository.findById(eMail).get(); return ResponseEntity.ok(response); + }catch (NoSuchElementException e){ + return ResponseEntity.status(HttpStatus.NOT_FOUND).body("User not found"); } - return ResponseEntity.status(HttpStatus.NOT_FOUND).body(null); } @GetMapping("/getAll") @@ -40,7 +42,7 @@ public class UserController { if (response.size() > 0) { return ResponseEntity.ok(response); } - return ResponseEntity.status(HttpStatus.NOT_FOUND).body(null); + return ResponseEntity.status(HttpStatus.NOT_FOUND).body("User not found"); } @PostMapping("/registrateUser") @@ -78,12 +80,19 @@ public class UserController { return ResponseEntity.ok(HttpStatus.OK); } + /** + * TODO User auch in den Gruppen löschen + * @param eMail + * @return + */ @DeleteMapping("/deleteUser") public ResponseEntity deleteUser(@RequestParam String eMail) { - if(userRepository.findById(eMail).get()==null){ - return ResponseEntity.status(HttpStatus.NOT_FOUND).body(null); + try{ + userRepository.findById(eMail).get(); + userRepository.deleteById(eMail); + return ResponseEntity.ok(HttpStatus.OK); + }catch (NoSuchElementException e){ + return ResponseEntity.status(HttpStatus.NOT_FOUND).body("User not found"); } - userRepository.deleteById(eMail); - return ResponseEntity.ok(HttpStatus.OK); } } diff --git a/Backend/src/main/java/com/mobilecomputing/pecunia/model/Trip.java b/Backend/src/main/java/com/mobilecomputing/pecunia/model/Trip.java index a1c89739ad5cc0881d721182e431673a36421887..e22a573b4eb986a0eb22033e22cd1db387afd140 100644 --- a/Backend/src/main/java/com/mobilecomputing/pecunia/model/Trip.java +++ b/Backend/src/main/java/com/mobilecomputing/pecunia/model/Trip.java @@ -62,4 +62,12 @@ public class Trip { public void setTripParticipants(List<String> tripParticipants) { this.tripParticipants = tripParticipants; } + + public List<String> getTransactions() { + return transactions; + } + + public void setTransactions(List<String> transactions) { + this.transactions = transactions; + } } diff --git a/Backend/src/main/java/com/mobilecomputing/pecunia/model/User.java b/Backend/src/main/java/com/mobilecomputing/pecunia/model/User.java index f04c9946c69fdbce2be2c487c507c220c45bc4e6..a1c4692ca9225712a7e3d5c96b32b462f467347f 100644 --- a/Backend/src/main/java/com/mobilecomputing/pecunia/model/User.java +++ b/Backend/src/main/java/com/mobilecomputing/pecunia/model/User.java @@ -7,7 +7,6 @@ public class User { @Id private String eMail; private String name; - private String surname; private String password; public String geteMail() { @@ -26,14 +25,6 @@ public class User { this.name = name; } - public String getSurname() { - return surname; - } - - public void setSurname(String surname) { - this.surname = surname; - } - public String getPassword() { return password; } @@ -47,7 +38,6 @@ public class User { return "User{" + "eMail='" + eMail + '\'' + ", name='" + name + '\'' + - ", surname='" + surname + '\'' + ", password='" + password + '\'' + '}'; } diff --git a/Backend/src/main/java/com/mobilecomputing/pecunia/repository/TransactionRepository.java b/Backend/src/main/java/com/mobilecomputing/pecunia/repository/TransactionRepository.java new file mode 100644 index 0000000000000000000000000000000000000000..ea0ab195535b8cf8495a00f984c9d3fef0e4bcfe --- /dev/null +++ b/Backend/src/main/java/com/mobilecomputing/pecunia/repository/TransactionRepository.java @@ -0,0 +1,7 @@ +package com.mobilecomputing.pecunia.repository; + +import com.mobilecomputing.pecunia.model.Transaction; +import org.springframework.data.repository.CrudRepository; + +public interface TransactionRepository extends CrudRepository<Transaction, String> { +} diff --git a/Backend/src/main/java/com/mobilecomputing/pecunia/repository/TripRepository.java b/Backend/src/main/java/com/mobilecomputing/pecunia/repository/TripRepository.java index a79b6d7cbc468f1b2ad2f75f20d88139d1299b0f..a1686bf3bf394bdc280b40998e56298aa99be9db 100644 --- a/Backend/src/main/java/com/mobilecomputing/pecunia/repository/TripRepository.java +++ b/Backend/src/main/java/com/mobilecomputing/pecunia/repository/TripRepository.java @@ -1,7 +1,6 @@ package com.mobilecomputing.pecunia.repository; import com.mobilecomputing.pecunia.model.Trip; -import org.bson.types.ObjectId; import org.springframework.data.repository.CrudRepository; public interface TripRepository extends CrudRepository<Trip, String> {