diff --git a/Backend/src/main/java/com/mobilecomputing/pecunia/controller/TransactionController.java b/Backend/src/main/java/com/mobilecomputing/pecunia/controller/TransactionController.java new file mode 100644 index 0000000000000000000000000000000000000000..0e5f08c76c53b864f732dbf779c45274129f6efd --- /dev/null +++ b/Backend/src/main/java/com/mobilecomputing/pecunia/controller/TransactionController.java @@ -0,0 +1,4 @@ +package com.mobilecomputing.pecunia.controller; + +public class TransactionController { +} 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 e573d9aedf4a21caf9be8a0ce15b1f0d801725aa..f80258607b46e7233bfb5540b16d9b37f243337d 100644 --- a/Backend/src/main/java/com/mobilecomputing/pecunia/controller/TripController.java +++ b/Backend/src/main/java/com/mobilecomputing/pecunia/controller/TripController.java @@ -1,10 +1,16 @@ package com.mobilecomputing.pecunia.controller; +import com.mobilecomputing.pecunia.model.Trip; +import com.mobilecomputing.pecunia.model.User; import com.mobilecomputing.pecunia.repository.TripRepository; import org.bson.types.ObjectId; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + @RestController @RequestMapping(value = "/trip", method = RequestMethod.GET) public class TripController { @@ -13,16 +19,48 @@ public class TripController { TripRepository tripRepository; @GetMapping("/getTripById") - public String getTripById(@RequestParam String id){ + public String getTripById(@RequestParam String id) { - return String.valueOf(tripRepository.findById(new ObjectId(id))); + return String.valueOf(tripRepository.findById(id)); } @GetMapping("/getAllTrips") - public String getAllTrips(){ - tripRepository.findAll().forEach(trip->{ - System.out.println(trip.toString()); + public ArrayList<Trip> getAllTrips() { + ArrayList<Trip> response = new ArrayList<>(); + tripRepository.findAll().forEach(trip -> { + response.add(trip); + }); + return response; + } + + @PostMapping("/addTrip") + public String addTrip(@RequestParam String tripName, @RequestParam String startOfTrip, + @RequestParam String endOfTrip, @RequestParam List<User> tripParticipants) { + Trip temp = new Trip(tripName, null, null, tripParticipants, null); + tripRepository.save(temp).getTripId(); + return tripRepository.save(temp).getTripId(); + } + + @GetMapping("/getTripByUser") + public List<Trip> getTripsByUser(@RequestParam String eMail) { + ArrayList<Trip> temp = new ArrayList<>(); + ArrayList<Trip> response = new ArrayList<>(); + tripRepository.findAll().forEach(trip -> { + temp.add(trip); }); - return "to do"; + for (Trip t : temp) { + boolean eMailIsEqual = false; + for (User u : t.getTripParticipants()) { + if (u.geteMail().equals(eMail)) { + eMailIsEqual = true; + break; + } + } + if (eMailIsEqual) { + response.add(t); + eMailIsEqual = false; + } + } + return response; } } 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 d472e1bc851a2d3f56f367915d45b5654bb9d6e4..b3ecf08c744dfe8887bdec719cf0325af2ba27d2 100644 --- a/Backend/src/main/java/com/mobilecomputing/pecunia/controller/UserController.java +++ b/Backend/src/main/java/com/mobilecomputing/pecunia/controller/UserController.java @@ -1,47 +1,66 @@ package com.mobilecomputing.pecunia.controller; +import com.mobilecomputing.pecunia.model.Trip; import com.mobilecomputing.pecunia.model.User; +import com.mobilecomputing.pecunia.repository.TripRepository; import com.mobilecomputing.pecunia.repository.UserRepository; import org.bson.types.ObjectId; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + @RestController @RequestMapping(value = "/user", method = RequestMethod.GET) public class UserController { @Autowired UserRepository userRepository; + @Autowired + TripRepository tripRepository; - @GetMapping("/getById") - public String getUserById(@RequestParam String id){ - return String.valueOf(userRepository.findById(new ObjectId(id))); + @GetMapping("/getByEMail") + public String getUserByEmail(@RequestParam String eMail){ + return String.valueOf(userRepository.findById(eMail)); } @GetMapping("/getAll") - public String getAllUsers(){ - String response =""; + public List<User> getAllUsers(){ + ArrayList<User> response = new ArrayList<>(); userRepository.findAll().forEach(user -> { - System.out.println(user.toString()); + response.add(user); }); - return String.valueOf(userRepository.findAll()); + return response; } @PostMapping("/registrateUser") public String registrateUser(@RequestParam String eMail, @RequestParam String name, @RequestParam String surname, @RequestParam String password){ - User user = new User(); - user.seteMail(eMail); // überprüfen ob email schon vergeben ist - user.setName(name); - user.setSurname(surname); - user.setPassword(password); - - userRepository.save(user); - return "ok?"; + + if (userRepository.findById(eMail).isEmpty()) { + + User user = new User(); + user.seteMail(eMail); // überprüfen ob email schon vergeben ist + user.setName(name); + user.setSurname(surname); + user.setPassword(password); + + userRepository.save(user); + return "ok"; + } + return "error"; + } + + @PostMapping("/addUserToTrip") + public void addUserToTrip(@RequestParam String eMail,@RequestParam String tripId){ + Optional<Trip> t = tripRepository.findById(tripId); + t.get().getTripParticipants().add(userRepository.findById(eMail).get()); } @DeleteMapping("/deleteUser") public void deleteUser(@RequestParam String eMail){ - userRepository.deleteById(new ObjectId(eMail)); + userRepository.deleteById(eMail); } } diff --git a/Backend/src/main/java/com/mobilecomputing/pecunia/model/Transaction.java b/Backend/src/main/java/com/mobilecomputing/pecunia/model/Transaction.java new file mode 100644 index 0000000000000000000000000000000000000000..91b83cb9eb35e891db7660ddecf40856bbe0ada4 --- /dev/null +++ b/Backend/src/main/java/com/mobilecomputing/pecunia/model/Transaction.java @@ -0,0 +1,59 @@ +package com.mobilecomputing.pecunia.model; + +import org.springframework.data.annotation.Id; + +public class Transaction { + @Id + String transactionId; + private User debtor; //Schuldner + private User creditor; // Gläubiger + private String currency; + private double loan; + + public Transaction(User debtor, User creditor, String currency, double loan) { + this.debtor = debtor; + this.creditor = creditor; + this.currency = currency; + this.loan = loan; + } + + public String getTransactionId() { + return transactionId; + } + + public void setTransactionId(String transactionId) { + this.transactionId = transactionId; + } + + public User getDebtor() { + return debtor; + } + + public void setDebtor(User debtor) { + this.debtor = debtor; + } + + public User getCreditor() { + return creditor; + } + + public void setCreditor(User creditor) { + this.creditor = creditor; + } + + public String getCurrency() { + return currency; + } + + public void setCurrency(String currency) { + this.currency = currency; + } + + public double getLoan() { + return loan; + } + + public void setLoan(double loan) { + this.loan = loan; + } +} 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 6132067564dad02121bae4db983ec44f6712dbe6..aff73af7a5da54162ae15b3c0eb37bb356945bc8 100644 --- a/Backend/src/main/java/com/mobilecomputing/pecunia/model/Trip.java +++ b/Backend/src/main/java/com/mobilecomputing/pecunia/model/Trip.java @@ -12,13 +12,15 @@ public class Trip { private Date startOfTrip; private Date endOfTrip; private List<User> tripParticipants; + private List<Transaction> transactions; - public Trip(String tripId, String tripName, Date startOfTrip, Date endOfTrip, List<User> tripParticipants) { - this.tripId = tripId; + public Trip(String tripName, Date startOfTrip, Date endOfTrip, List<User> tripParticipants, + List<Transaction> transactions) { this.tripName = tripName; this.startOfTrip = startOfTrip; this.endOfTrip = endOfTrip; this.tripParticipants = tripParticipants; + this.transactions=transactions; } public String getTripId() { 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 e540fa0d3b60d2d067d824be04d258e6dcfb8979..a79b6d7cbc468f1b2ad2f75f20d88139d1299b0f 100644 --- a/Backend/src/main/java/com/mobilecomputing/pecunia/repository/TripRepository.java +++ b/Backend/src/main/java/com/mobilecomputing/pecunia/repository/TripRepository.java @@ -4,6 +4,6 @@ import com.mobilecomputing.pecunia.model.Trip; import org.bson.types.ObjectId; import org.springframework.data.repository.CrudRepository; -public interface TripRepository extends CrudRepository<Trip, ObjectId> { +public interface TripRepository extends CrudRepository<Trip, String> { } diff --git a/Backend/src/main/java/com/mobilecomputing/pecunia/repository/UserRepository.java b/Backend/src/main/java/com/mobilecomputing/pecunia/repository/UserRepository.java index ccc2662873d7d4e8aaaca4265101594a9016300c..3be8ad1cf91cf0b458b2996d65c59de00919e942 100644 --- a/Backend/src/main/java/com/mobilecomputing/pecunia/repository/UserRepository.java +++ b/Backend/src/main/java/com/mobilecomputing/pecunia/repository/UserRepository.java @@ -5,5 +5,5 @@ import com.mobilecomputing.pecunia.model.User; import org.bson.types.ObjectId; import org.springframework.data.repository.CrudRepository; -public interface UserRepository extends CrudRepository<User, ObjectId> { +public interface UserRepository extends CrudRepository<User, String> { }