From 915e2ff863b665c3884f04d45b75c04a113bf444 Mon Sep 17 00:00:00 2001
From: Christophorus Dharma Winata <13521009@std.stei.itb.ac.id>
Date: Thu, 4 Apr 2024 11:26:02 +0700
Subject: [PATCH] refactor: api service

---
 .../pbd/tubes/exe_android/data/api/ApiService.kt  | 15 +++++++++++++++
 .../data/{ => api}/login/LoginRequest.kt          |  2 +-
 .../data/{ => api}/login/LoginResponse.kt         |  2 +-
 .../exe_android/data/api/upload/UploadImage.kt    |  7 +++++++
 .../tubes/exe_android/data/login/ApiService.kt    | 10 ----------
 .../tubes/exe_android/ui/login/LoginActivity.kt   |  4 ++--
 6 files changed, 26 insertions(+), 14 deletions(-)
 create mode 100644 app/src/main/java/pbd/tubes/exe_android/data/api/ApiService.kt
 rename app/src/main/java/pbd/tubes/exe_android/data/{ => api}/login/LoginRequest.kt (62%)
 rename app/src/main/java/pbd/tubes/exe_android/data/{ => api}/login/LoginResponse.kt (53%)
 create mode 100644 app/src/main/java/pbd/tubes/exe_android/data/api/upload/UploadImage.kt
 delete mode 100644 app/src/main/java/pbd/tubes/exe_android/data/login/ApiService.kt

diff --git a/app/src/main/java/pbd/tubes/exe_android/data/api/ApiService.kt b/app/src/main/java/pbd/tubes/exe_android/data/api/ApiService.kt
new file mode 100644
index 0000000..3302493
--- /dev/null
+++ b/app/src/main/java/pbd/tubes/exe_android/data/api/ApiService.kt
@@ -0,0 +1,15 @@
+package pbd.tubes.exe_android.data.api
+
+import pbd.tubes.exe_android.data.api.login.LoginRequest
+import pbd.tubes.exe_android.data.api.login.LoginResponse
+import pbd.tubes.exe_android.data.api.upload.UploadImage
+import retrofit2.Response
+import retrofit2.http.Body
+import retrofit2.http.POST
+
+interface ApiService {
+    @POST("/api/auth/login")
+    suspend fun login(@Body credentials: LoginRequest): Response<LoginResponse>
+    @POST("/api/bill/upload")
+    suspend fun upload(@Body data: UploadImage): Response<LoginResponse>
+}
diff --git a/app/src/main/java/pbd/tubes/exe_android/data/login/LoginRequest.kt b/app/src/main/java/pbd/tubes/exe_android/data/api/login/LoginRequest.kt
similarity index 62%
rename from app/src/main/java/pbd/tubes/exe_android/data/login/LoginRequest.kt
rename to app/src/main/java/pbd/tubes/exe_android/data/api/login/LoginRequest.kt
index 2105e28..3f9fa94 100644
--- a/app/src/main/java/pbd/tubes/exe_android/data/login/LoginRequest.kt
+++ b/app/src/main/java/pbd/tubes/exe_android/data/api/login/LoginRequest.kt
@@ -1,4 +1,4 @@
-package pbd.tubes.exe_android.data.login
+package pbd.tubes.exe_android.data.api.login
 
 data class LoginRequest(
     val email: String,
diff --git a/app/src/main/java/pbd/tubes/exe_android/data/login/LoginResponse.kt b/app/src/main/java/pbd/tubes/exe_android/data/api/login/LoginResponse.kt
similarity index 53%
rename from app/src/main/java/pbd/tubes/exe_android/data/login/LoginResponse.kt
rename to app/src/main/java/pbd/tubes/exe_android/data/api/login/LoginResponse.kt
index 3affb82..71ee5e0 100644
--- a/app/src/main/java/pbd/tubes/exe_android/data/login/LoginResponse.kt
+++ b/app/src/main/java/pbd/tubes/exe_android/data/api/login/LoginResponse.kt
@@ -1,4 +1,4 @@
-package pbd.tubes.exe_android.data.login
+package pbd.tubes.exe_android.data.api.login
 
 data class LoginResponse(
     val token: String
diff --git a/app/src/main/java/pbd/tubes/exe_android/data/api/upload/UploadImage.kt b/app/src/main/java/pbd/tubes/exe_android/data/api/upload/UploadImage.kt
new file mode 100644
index 0000000..e7e1018
--- /dev/null
+++ b/app/src/main/java/pbd/tubes/exe_android/data/api/upload/UploadImage.kt
@@ -0,0 +1,7 @@
+package pbd.tubes.exe_android.data.api.upload
+
+import android.media.Image
+
+data class UploadImage(
+    val image: Image //or file? FIXME(key: image or file)
+)
diff --git a/app/src/main/java/pbd/tubes/exe_android/data/login/ApiService.kt b/app/src/main/java/pbd/tubes/exe_android/data/login/ApiService.kt
deleted file mode 100644
index e4ca829..0000000
--- a/app/src/main/java/pbd/tubes/exe_android/data/login/ApiService.kt
+++ /dev/null
@@ -1,10 +0,0 @@
-package pbd.tubes.exe_android.data.login
-
-import retrofit2.Response
-import retrofit2.http.Body
-import retrofit2.http.POST
-
-interface ApiService {
-    @POST("/api/auth/login")
-    suspend fun login(@Body credentials: LoginRequest): Response<LoginResponse>
-}
diff --git a/app/src/main/java/pbd/tubes/exe_android/ui/login/LoginActivity.kt b/app/src/main/java/pbd/tubes/exe_android/ui/login/LoginActivity.kt
index d92719f..618369d 100644
--- a/app/src/main/java/pbd/tubes/exe_android/ui/login/LoginActivity.kt
+++ b/app/src/main/java/pbd/tubes/exe_android/ui/login/LoginActivity.kt
@@ -10,8 +10,8 @@ import androidx.appcompat.app.AppCompatActivity
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.launch
-import pbd.tubes.exe_android.data.login.ApiService
-import pbd.tubes.exe_android.data.login.LoginRequest
+import pbd.tubes.exe_android.data.api.ApiService
+import pbd.tubes.exe_android.data.api.login.LoginRequest
 import retrofit2.Retrofit
 import retrofit2.converter.gson.GsonConverterFactory
 
-- 
GitLab