diff --git a/app/src/main/java/com/example/bondoman/data/viewmodels/login/LoginViewModel.kt b/app/src/main/java/com/example/bondoman/data/viewmodels/login/LoginViewModel.kt index c79aeeb6fb4dbd3f0012bbef1767f2e660f576f0..565e4579d70221c86afbaf1841c31087ca3ed8c1 100644 --- a/app/src/main/java/com/example/bondoman/data/viewmodels/login/LoginViewModel.kt +++ b/app/src/main/java/com/example/bondoman/data/viewmodels/login/LoginViewModel.kt @@ -26,13 +26,15 @@ class LoginViewModel : ViewModel() { ) { viewModelScope.launch { try { - val repository = UserRepository(RetrofitClient.getInstance().create(UserService::class.java)) + val repository = + UserRepository(RetrofitClient.getInstance().create(UserService::class.java)) val loginResponse = repository.login(email, password) if (loginResponse.isSuccessful) { _loginResponse.value = loginResponse.body() } else { - _loginResponse.value = LoginResponse(null, loginResponse.errorBody()?.string() ?: "Unknown error") + _loginResponse.value = + LoginResponse(null, loginResponse.errorBody()?.string() ?: "Unknown error") } } catch (e: Exception) { _loginResponse.value = LoginResponse(null, "Something went wrong") @@ -43,13 +45,20 @@ class LoginViewModel : ViewModel() { fun checkToken(bearerToken: String) { viewModelScope.launch { try { - val repository = UserRepository(RetrofitClient.getInstanceWithAuth(bearerToken).create(UserService::class.java)) + val repository = UserRepository( + RetrofitClient.getInstanceWithAuth(bearerToken).create(UserService::class.java) + ) val tokenResponse = repository.checkToken() if (tokenResponse.isSuccessful) { _tokenResponse.value = tokenResponse.body() } else { - _tokenResponse.value = TokenResponse("", 0, 0, tokenResponse.errorBody()?.string() ?: "Unknown error") + _tokenResponse.value = TokenResponse( + "", + 0, + 0, + tokenResponse.errorBody()?.string() ?: "Unknown error" + ) } } catch (e: Exception) { _tokenResponse.value = TokenResponse("", 0, 0, e.message ?: "Unknown error") diff --git a/app/src/main/java/com/example/bondoman/data/viewmodels/scanReceipt/ScanReceiptViewModel.kt b/app/src/main/java/com/example/bondoman/data/viewmodels/scanReceipt/ScanReceiptViewModel.kt index 62521d6193982288150494c51e65346179c89f80..4095645bc19bd4c3498249018ac455a848b23ef6 100644 --- a/app/src/main/java/com/example/bondoman/data/viewmodels/scanReceipt/ScanReceiptViewModel.kt +++ b/app/src/main/java/com/example/bondoman/data/viewmodels/scanReceipt/ScanReceiptViewModel.kt @@ -12,6 +12,7 @@ import okhttp3.MediaType import okhttp3.MultipartBody import okhttp3.RequestBody import java.io.File +import java.net.UnknownHostException class ScanReceiptViewModel : ViewModel() { private val _scanReceiptResponse = MutableLiveData<ScanReceiptResponseItemsWrapper>() @@ -22,31 +23,43 @@ class ScanReceiptViewModel : ViewModel() { bearerToken: String, ) { viewModelScope.launch { - val repository = - ScanReceiptRepository( - RetrofitClient.getInstanceWithAuth(bearerToken) - .create(ScanReceiptService::class.java), - ) - val formData = - MultipartBody.Part.createFormData( - "file", - scanReceiptImageFile.name, - RequestBody.create(MediaType.parse("image/*"), scanReceiptImageFile), - ) - val scanReceiptResponse = repository.scanReceipt(formData) + try { + val repository = + ScanReceiptRepository( + RetrofitClient.getInstanceWithAuth(bearerToken) + .create(ScanReceiptService::class.java), + ) + val formData = + MultipartBody.Part.createFormData( + "file", + scanReceiptImageFile.name, + RequestBody.create(MediaType.parse("image/*"), scanReceiptImageFile), + ) + val scanReceiptResponse = repository.scanReceipt(formData) - if (scanReceiptResponse.isSuccessful) { - _scanReceiptResponse.value = scanReceiptResponse.body() - } else { - val error = - when (scanReceiptResponse.code()) { - 401 -> "Upload receipt failed. Unauthorized" - 413 -> "Upload receipt failed. File too large" - else -> "Upload receipt failed. Unknown Error" - } + if (scanReceiptResponse.isSuccessful) { + _scanReceiptResponse.value = scanReceiptResponse.body() + } else { + val error = + when (scanReceiptResponse.code()) { + 401 -> "Upload receipt failed. Unauthorized." + 413 -> "Upload receipt failed. File too large." + else -> "Upload receipt failed. Unknown Error." + } + _scanReceiptResponse.value = + ScanReceiptResponseItemsWrapper(null, error) + } + } catch (e: UnknownHostException) { _scanReceiptResponse.value = - ScanReceiptResponseItemsWrapper(null, error) + ScanReceiptResponseItemsWrapper( + null, + "You're offline. Please check your internet." + ) + } catch (e: Exception) { + _scanReceiptResponse.value = + ScanReceiptResponseItemsWrapper(null, "Something went wrong. Please try again.") } + } } }