From 83f380f985547f9ca0488201d400f5432ca7109c Mon Sep 17 00:00:00 2001
From: Bruno Teixeira <brunomichaelt@gmail.com>
Date: Sat, 6 Jun 2020 18:07:45 +0200
Subject: [PATCH] add Models and Retrofit Client

---
 .../mobilecomputing/pecunia/model/Trip.java   | 14 +++-
 Frontend/.idea/misc.xml                       |  2 +-
 Frontend/app/build.gradle                     |  7 +-
 .../example/mobileapp/model/Transaction.java  | 56 +++++++++++++
 .../com/example/mobileapp/model/Trip.java     | 80 +++++++++++++++++++
 .../com/example/mobileapp/model/User.java     | 40 ++++++++++
 .../mobileapp/networking/RetrofitClient.java  | 25 ++++++
 .../mobileapp/networking/TripService.java     | 24 ++++++
 .../mobileapp/networking/UserService.java     | 20 +++++
 9 files changed, 264 insertions(+), 4 deletions(-)
 create mode 100644 Frontend/app/src/main/java/com/example/mobileapp/model/Transaction.java
 create mode 100644 Frontend/app/src/main/java/com/example/mobileapp/model/Trip.java
 create mode 100644 Frontend/app/src/main/java/com/example/mobileapp/model/User.java
 create mode 100644 Frontend/app/src/main/java/com/example/mobileapp/networking/RetrofitClient.java
 create mode 100644 Frontend/app/src/main/java/com/example/mobileapp/networking/TripService.java
 create mode 100644 Frontend/app/src/main/java/com/example/mobileapp/networking/UserService.java

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 e22a573..9b655a2 100644
--- a/Backend/src/main/java/com/mobilecomputing/pecunia/model/Trip.java
+++ b/Backend/src/main/java/com/mobilecomputing/pecunia/model/Trip.java
@@ -13,14 +13,16 @@ public class Trip {
     private Date endOfTrip;
     private List<String> tripParticipants;
     private List<String> transactions;
+    private List<String> admins;
 
     public Trip(String tripName, Date startOfTrip, Date endOfTrip, List<String> tripParticipants,
-                List<String> transactions) {
+                List<String> transactions, List<String> admins) {
         this.tripName = tripName;
         this.startOfTrip = startOfTrip;
         this.endOfTrip = endOfTrip;
         this.tripParticipants = tripParticipants;
-        this.transactions=transactions;
+        this.transactions = transactions;
+        this.admins = admins;
     }
 
     public String getTripId() {
@@ -70,4 +72,12 @@ public class Trip {
     public void setTransactions(List<String> transactions) {
         this.transactions = transactions;
     }
+
+    public List<String> getAdmins() {
+        return admins;
+    }
+
+    public void setAdmins(List<String> admins) {
+        this.admins = admins;
+    }
 }
diff --git a/Frontend/.idea/misc.xml b/Frontend/.idea/misc.xml
index 37a7509..7bfef59 100644
--- a/Frontend/.idea/misc.xml
+++ b/Frontend/.idea/misc.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
     <output url="file://$PROJECT_DIR$/build/classes" />
   </component>
   <component name="ProjectType">
diff --git a/Frontend/app/build.gradle b/Frontend/app/build.gradle
index 443a246..3188c4e 100644
--- a/Frontend/app/build.gradle
+++ b/Frontend/app/build.gradle
@@ -3,7 +3,10 @@ apply plugin: 'com.android.application'
 android {
     compileSdkVersion 29
     buildToolsVersion "29.0.3"
-
+    compileOptions {
+        sourceCompatibility JavaVersion.VERSION_1_8
+        targetCompatibility JavaVersion.VERSION_1_8
+    }
     defaultConfig {
         applicationId "com.example.mobileapp"
         minSdkVersion 16
@@ -35,6 +38,8 @@ dependencies {
     implementation "androidx.recyclerview:recyclerview-selection:1.1.0-rc01"
     implementation 'com.google.android.material:material:1.1.0'
     implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
+    implementation group: 'com.squareup.retrofit2', name: 'retrofit', version: '2.9.0'
+    implementation 'com.squareup.retrofit2:converter-gson:2.3.0'
     testImplementation 'junit:junit:4.12'
     androidTestImplementation 'androidx.test.ext:junit:1.1.1'
     androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
diff --git a/Frontend/app/src/main/java/com/example/mobileapp/model/Transaction.java b/Frontend/app/src/main/java/com/example/mobileapp/model/Transaction.java
new file mode 100644
index 0000000..21508df
--- /dev/null
+++ b/Frontend/app/src/main/java/com/example/mobileapp/model/Transaction.java
@@ -0,0 +1,56 @@
+package com.example.mobileapp.model;
+
+public class Transaction {
+    String transactionId;
+    private String debtor; //Schuldner
+    private String creditor; // Gläubiger
+    private String currency; // vllt Enum?
+    private double loan;
+
+    public Transaction(String debtor, String 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 String getDebtor() {
+        return debtor;
+    }
+
+    public void setDebtor(String debtor) {
+        this.debtor = debtor;
+    }
+
+    public String getCreditor() {
+        return creditor;
+    }
+
+    public void setCreditor(String 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/Frontend/app/src/main/java/com/example/mobileapp/model/Trip.java b/Frontend/app/src/main/java/com/example/mobileapp/model/Trip.java
new file mode 100644
index 0000000..b294020
--- /dev/null
+++ b/Frontend/app/src/main/java/com/example/mobileapp/model/Trip.java
@@ -0,0 +1,80 @@
+package com.example.mobileapp.model;
+
+import java.util.Date;
+import java.util.List;
+
+public class Trip {
+    private String tripId;
+    private String tripName;
+    private Date startOfTrip;
+    private Date endOfTrip;
+    private List<String> tripParticipants;
+    private List<String> transactions;
+    private List<String> admins;
+
+    public Trip(String tripName, Date startOfTrip, Date endOfTrip, List<String> tripParticipants,
+                List<String> transactions, List<String> admins) {
+        this.tripName = tripName;
+        this.startOfTrip = startOfTrip;
+        this.endOfTrip = endOfTrip;
+        this.tripParticipants = tripParticipants;
+        this.transactions = transactions;
+        this.admins = admins;
+    }
+
+    public String getTripId() {
+        return tripId;
+    }
+
+    public void setTripId(String tripId) {
+        this.tripId = tripId;
+    }
+
+    public String getTripName() {
+        return tripName;
+    }
+
+    public void setTripName(String tripName) {
+        this.tripName = tripName;
+    }
+
+    public Date getStartOfTrip() {
+        return startOfTrip;
+    }
+
+    public void setStartOfTrip(Date startOfTrip) {
+        this.startOfTrip = startOfTrip;
+    }
+
+    public Date getEndOfTrip() {
+        return endOfTrip;
+    }
+
+    public void setEndOfTrip(Date endOfTrip) {
+        this.endOfTrip = endOfTrip;
+    }
+
+    public List<String> getTripParticipants() {
+        return tripParticipants;
+    }
+
+    public void setTripParticipants(List<String> tripParticipants) {
+        this.tripParticipants = tripParticipants;
+    }
+
+    public List<String> getTransactions() {
+        return transactions;
+    }
+
+    public void setTransactions(List<String> transactions) {
+        this.transactions = transactions;
+    }
+
+    public List<String> getAdmins() {
+        return admins;
+    }
+
+    public void setAdmins(List<String> admins) {
+        this.admins = admins;
+    }
+}
diff --git a/Frontend/app/src/main/java/com/example/mobileapp/model/User.java b/Frontend/app/src/main/java/com/example/mobileapp/model/User.java
new file mode 100644
index 0000000..4ad3feb
--- /dev/null
+++ b/Frontend/app/src/main/java/com/example/mobileapp/model/User.java
@@ -0,0 +1,40 @@
+package com.example.mobileapp.model;
+
+public class User {
+    private String eMail;
+    private String name;
+    private String password;
+
+    public String geteMail() {
+        return eMail;
+    }
+
+    public void seteMail(String eMail) {
+        this.eMail = eMail;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+
+    @Override
+    public String toString() {
+        return "User{" +
+                "eMail='" + eMail + '\'' +
+                ", name='" + name + '\'' +
+                ", password='" + password + '\'' +
+                '}';
+    }
+}
diff --git a/Frontend/app/src/main/java/com/example/mobileapp/networking/RetrofitClient.java b/Frontend/app/src/main/java/com/example/mobileapp/networking/RetrofitClient.java
new file mode 100644
index 0000000..bdac66a
--- /dev/null
+++ b/Frontend/app/src/main/java/com/example/mobileapp/networking/RetrofitClient.java
@@ -0,0 +1,25 @@
+package com.example.mobileapp.networking;
+
+import okhttp3.OkHttpClient;
+import retrofit2.Retrofit;
+import retrofit2.converter.gson.GsonConverterFactory;
+
+/**
+ * https://www.baeldung.com/retrofit
+ */
+public class RetrofitClient {
+    private static OkHttpClient.Builder httpClient = new OkHttpClient.Builder();
+    private static Retrofit retrofit;
+    private static final String BASE_URL = "http://localhost:8080/";
+
+    public static Retrofit getRetrofitInstance() {
+        if (retrofit == null) {
+            retrofit = new retrofit2.Retrofit.Builder()
+                    .baseUrl(BASE_URL)
+                    .addConverterFactory(GsonConverterFactory.create())
+                    .client(httpClient.build())
+                    .build();
+        }
+        return retrofit;
+    }
+}
diff --git a/Frontend/app/src/main/java/com/example/mobileapp/networking/TripService.java b/Frontend/app/src/main/java/com/example/mobileapp/networking/TripService.java
new file mode 100644
index 0000000..9f2dc3b
--- /dev/null
+++ b/Frontend/app/src/main/java/com/example/mobileapp/networking/TripService.java
@@ -0,0 +1,24 @@
+package com.example.mobileapp.networking;
+
+
+
+import com.example.mobileapp.model.Trip;
+
+import java.util.List;
+
+import retrofit2.Call;
+import retrofit2.http.Body;
+import retrofit2.http.GET;
+import retrofit2.http.POST;
+import retrofit2.http.Query;
+
+public interface TripService {
+    @GET("trip/getTripById")
+    public Call<Trip> getTripId(@Query("id") String id);
+
+    @GET("/trip/getTripsByUser")
+    public Call<List<Trip>> getTripsByUser(@Query("eMail") String eMail);
+
+    @POST("/trip/addTrip")
+    public Call<String> addTrip(@Body Trip trip);
+}
diff --git a/Frontend/app/src/main/java/com/example/mobileapp/networking/UserService.java b/Frontend/app/src/main/java/com/example/mobileapp/networking/UserService.java
new file mode 100644
index 0000000..c4607be
--- /dev/null
+++ b/Frontend/app/src/main/java/com/example/mobileapp/networking/UserService.java
@@ -0,0 +1,20 @@
+package com.example.mobileapp.networking;
+
+import com.example.mobileapp.model.User;
+
+import retrofit2.Call;
+import retrofit2.http.Body;
+import retrofit2.http.GET;
+import retrofit2.http.POST;
+import retrofit2.http.Query;
+
+public interface UserService {
+    @GET("user/getByEMail")
+    public Call<User> getUserByEmail(@Query("eMail") String eMail);
+
+    @POST("user/registrateUser")
+    public Call<String> registrateUser(@Body User user);
+
+    @POST("user/addUserToTrip")
+    public Call<String> addUserToTrip(@Body User user);
+}
-- 
GitLab