From 98d4ba14a410b1bf7d327d9e9561ed01033d74b3 Mon Sep 17 00:00:00 2001 From: Andrea Brighi Date: Sun, 9 Jul 2023 22:41:39 +0200 Subject: [PATCH] chore(app): create object to handler default error message --- .../app/exceptionhandler/ExceptionMessage.kt | 8 +++++++ .../app/viewmodel/BackpackViewModel.kt | 16 +++++-------- .../app/viewmodel/CalendarViewModel.kt | 11 +++++---- .../app/viewmodel/HomeViewModel.kt | 7 +++--- .../app/viewmodel/LoginViewModel.kt | 14 ++++++++--- .../app/viewmodel/ReminderViewModel.kt | 5 ++-- .../app/viewmodel/SchoolSupplyViewModel.kt | 24 +++++++++---------- .../app/viewmodel/UserViewModel.kt | 7 +++--- 8 files changed, 54 insertions(+), 38 deletions(-) create mode 100644 app/src/main/kotlin/com/intelligentbackpack/app/exceptionhandler/ExceptionMessage.kt diff --git a/app/src/main/kotlin/com/intelligentbackpack/app/exceptionhandler/ExceptionMessage.kt b/app/src/main/kotlin/com/intelligentbackpack/app/exceptionhandler/ExceptionMessage.kt new file mode 100644 index 00000000..a8fa9054 --- /dev/null +++ b/app/src/main/kotlin/com/intelligentbackpack/app/exceptionhandler/ExceptionMessage.kt @@ -0,0 +1,8 @@ +package com.intelligentbackpack.app.exceptionhandler + +object ExceptionMessage { + + fun Throwable.messageOrDefault(): String { + return this.message ?: "Unknown error" + } +} diff --git a/app/src/main/kotlin/com/intelligentbackpack/app/viewmodel/BackpackViewModel.kt b/app/src/main/kotlin/com/intelligentbackpack/app/viewmodel/BackpackViewModel.kt index ab7ff1d8..69a0c19f 100644 --- a/app/src/main/kotlin/com/intelligentbackpack/app/viewmodel/BackpackViewModel.kt +++ b/app/src/main/kotlin/com/intelligentbackpack/app/viewmodel/BackpackViewModel.kt @@ -8,6 +8,7 @@ import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewmodel.initializer import androidx.lifecycle.viewmodel.viewModelFactory import com.intelligentbackpack.app.App +import com.intelligentbackpack.app.exceptionhandler.ExceptionMessage.messageOrDefault import com.intelligentbackpack.app.viewdata.SchoolSupplyView import com.intelligentbackpack.app.viewdata.adapter.SchoolSupplyAdapter.fromDomainToView import com.intelligentbackpack.desktopdomain.usecase.DesktopUseCase @@ -49,7 +50,7 @@ class BackpackViewModel( .onSuccess { isBackpackAssociatedImpl.postValue(it.isBackpackAssociated) }.onFailure { - error(it.message ?: "Unknown error") + error(it.messageOrDefault()) } } } @@ -72,7 +73,7 @@ class BackpackViewModel( isBackpackAssociatedImpl.postValue(true) success() }.onFailure { - error(it.message ?: "Unknown error") + error(it.messageOrDefault()) } } } @@ -98,12 +99,12 @@ class BackpackViewModel( success() } .onFailure { - error(it.message ?: "Unknown error") + error(it.messageOrDefault()) } } } }.onFailure { - error(it.message ?: "Unknown error") + error(it.messageOrDefault()) } } } @@ -117,11 +118,6 @@ class BackpackViewModel( error: (error: String) -> Unit, ) { viewModelScope.launch { - /*(1..10).asFlow().map { (0..it).toSet() }.flowOn(Dispatchers.IO).collect { - viewModelScope.launch(Dispatchers.Main) { - backpackImpl.postValue(it) - } - }*/ desktopUseCase.subscribeToBackpack() .onSuccess { viewModelScope.launch(Dispatchers.IO) { @@ -134,7 +130,7 @@ class BackpackViewModel( } } }.onFailure { - error(it.message ?: "Unknown error") + error(it.messageOrDefault()) } } } diff --git a/app/src/main/kotlin/com/intelligentbackpack/app/viewmodel/CalendarViewModel.kt b/app/src/main/kotlin/com/intelligentbackpack/app/viewmodel/CalendarViewModel.kt index c112421c..92d68bf5 100644 --- a/app/src/main/kotlin/com/intelligentbackpack/app/viewmodel/CalendarViewModel.kt +++ b/app/src/main/kotlin/com/intelligentbackpack/app/viewmodel/CalendarViewModel.kt @@ -9,6 +9,7 @@ import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewmodel.initializer import androidx.lifecycle.viewmodel.viewModelFactory import com.intelligentbackpack.app.App +import com.intelligentbackpack.app.exceptionhandler.ExceptionMessage.messageOrDefault import com.intelligentbackpack.app.viewdata.BookView import com.intelligentbackpack.app.viewdata.EventView import com.intelligentbackpack.app.viewdata.SchoolSupplyView @@ -70,7 +71,7 @@ class CalendarViewModel( ) } .onFailure { - error(it.message ?: "Unknown error") + error(it.messageOrDefault()) } } } @@ -108,7 +109,7 @@ class CalendarViewModel( ) } .onFailure { - error(it.message ?: "Unknown error") + error(it.messageOrDefault()) } } } @@ -154,7 +155,7 @@ class CalendarViewModel( success() } .onFailure { - error(it.message ?: "Unknown error") + error(it.messageOrDefault()) } } } @@ -183,7 +184,7 @@ class CalendarViewModel( ) } .onFailure { - error(it.message ?: "Unknown error") + error(it.messageOrDefault()) } } } @@ -201,7 +202,7 @@ class CalendarViewModel( success(it) } .onFailure { - error(it.message ?: "Unknown error") + error(it.messageOrDefault()) } } } diff --git a/app/src/main/kotlin/com/intelligentbackpack/app/viewmodel/HomeViewModel.kt b/app/src/main/kotlin/com/intelligentbackpack/app/viewmodel/HomeViewModel.kt index 93de255e..c8033efa 100644 --- a/app/src/main/kotlin/com/intelligentbackpack/app/viewmodel/HomeViewModel.kt +++ b/app/src/main/kotlin/com/intelligentbackpack/app/viewmodel/HomeViewModel.kt @@ -9,6 +9,7 @@ import androidx.lifecycle.viewmodel.initializer import androidx.lifecycle.viewmodel.viewModelFactory import com.intelligentbackpack.accessdomain.usecase.AccessUseCase import com.intelligentbackpack.app.App +import com.intelligentbackpack.app.exceptionhandler.ExceptionMessage.messageOrDefault import com.intelligentbackpack.app.viewdata.UserView import com.intelligentbackpack.app.viewdata.adapter.UserAdapter.fromDomainToView import com.intelligentbackpack.reminderdomain.usecase.ReminderUseCase @@ -52,7 +53,7 @@ class HomeViewModel( success(user.fromDomainToView()) } .onFailure { - error(it.message ?: "Unknown error") + error(it.messageOrDefault()) } } } @@ -71,7 +72,7 @@ class HomeViewModel( } } .onFailure { - error(it.message ?: "Unknown error") + error(it.messageOrDefault()) } } } @@ -89,7 +90,7 @@ class HomeViewModel( success() } .onFailure { - error(it.message ?: "Unknown error") + error(it.messageOrDefault()) } } } diff --git a/app/src/main/kotlin/com/intelligentbackpack/app/viewmodel/LoginViewModel.kt b/app/src/main/kotlin/com/intelligentbackpack/app/viewmodel/LoginViewModel.kt index b9e3d283..3e868b3e 100644 --- a/app/src/main/kotlin/com/intelligentbackpack/app/viewmodel/LoginViewModel.kt +++ b/app/src/main/kotlin/com/intelligentbackpack/app/viewmodel/LoginViewModel.kt @@ -9,6 +9,7 @@ import androidx.lifecycle.viewmodel.viewModelFactory import com.intelligentbackpack.accessdomain.entities.User import com.intelligentbackpack.accessdomain.usecase.AccessUseCase import com.intelligentbackpack.app.App +import com.intelligentbackpack.app.exceptionhandler.ExceptionMessage.messageOrDefault import com.intelligentbackpack.app.viewdata.UserView import com.intelligentbackpack.app.viewdata.adapter.UserAdapter.fromViewToDomain import kotlinx.coroutines.launch @@ -39,16 +40,23 @@ class LoginViewModel( .onSuccess { user -> success(user) }.onFailure { - error(it.message ?: "Unknown error") + error(it.messageOrDefault()) } } } + /** + * Check if the user is logged. + * + * @param success the success callback. + */ fun isUserLogged(success: (Boolean) -> Unit) { viewModelScope.launch { accessUseCase.isUserLogged() .onSuccess { success(it) + }.onFailure { + success(false) } } } @@ -69,7 +77,7 @@ class LoginViewModel( success(user) } .onFailure { - error(it.message ?: "Unknown error") + error(it.messageOrDefault()) } } } @@ -92,7 +100,7 @@ class LoginViewModel( success(it) } .onFailure { - error(it.message ?: "Unknown error") + error(it.messageOrDefault()) } } } diff --git a/app/src/main/kotlin/com/intelligentbackpack/app/viewmodel/ReminderViewModel.kt b/app/src/main/kotlin/com/intelligentbackpack/app/viewmodel/ReminderViewModel.kt index 650701a3..f900e4ac 100644 --- a/app/src/main/kotlin/com/intelligentbackpack/app/viewmodel/ReminderViewModel.kt +++ b/app/src/main/kotlin/com/intelligentbackpack/app/viewmodel/ReminderViewModel.kt @@ -8,6 +8,7 @@ import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewmodel.initializer import androidx.lifecycle.viewmodel.viewModelFactory import com.intelligentbackpack.app.App +import com.intelligentbackpack.app.exceptionhandler.ExceptionMessage.messageOrDefault import com.intelligentbackpack.app.viewdata.SchoolSupplyView import com.intelligentbackpack.app.viewdata.adapter.SchoolSupplyAdapter.fromDomainToView import com.intelligentbackpack.reminderdomain.usecase.ReminderUseCase @@ -48,7 +49,7 @@ class ReminderViewModel( viewModelScope.launch { reminderUseCase.isBackpackAssociated() .onSuccess { success(it) } - .onFailure { error(it.message ?: "Unknown error") } + .onFailure { error(it.messageOrDefault()) } } } @@ -68,7 +69,7 @@ class ReminderViewModel( } } .onFailure { - error(it.message ?: "Unknown error") + error(it.messageOrDefault()) } } } diff --git a/app/src/main/kotlin/com/intelligentbackpack/app/viewmodel/SchoolSupplyViewModel.kt b/app/src/main/kotlin/com/intelligentbackpack/app/viewmodel/SchoolSupplyViewModel.kt index 871e5efb..ddcf609a 100644 --- a/app/src/main/kotlin/com/intelligentbackpack/app/viewmodel/SchoolSupplyViewModel.kt +++ b/app/src/main/kotlin/com/intelligentbackpack/app/viewmodel/SchoolSupplyViewModel.kt @@ -8,6 +8,7 @@ import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewmodel.initializer import androidx.lifecycle.viewmodel.viewModelFactory import com.intelligentbackpack.app.App +import com.intelligentbackpack.app.exceptionhandler.ExceptionMessage.messageOrDefault import com.intelligentbackpack.app.viewdata.BookView import com.intelligentbackpack.app.viewdata.SchoolSupplyView import com.intelligentbackpack.app.viewdata.adapter.BookAdapter.fromDomainToView @@ -54,7 +55,7 @@ class SchoolSupplyViewModel( .onSuccess { desktop -> schoolSuppliesImpl.postValue(desktop.schoolSupplies.map { it.fromDomainToView() }.toSet()) }.onFailure { - error(it.message ?: "Unknown error") + error(it.messageOrDefault()) } } } @@ -77,7 +78,7 @@ class SchoolSupplyViewModel( ).onSuccess { schoolSupplyImpl.postValue(it?.fromDomainToView()) }.onFailure { - error(it.message ?: "Unknown error") + error(it.messageOrDefault()) } } } @@ -101,22 +102,21 @@ class SchoolSupplyViewModel( success(it.fromDomainToView()) } ?: error("Book not found") }.onFailure { - error(it.message ?: "Unknown error") + error(it.messageOrDefault()) } - /* - success( - Book.build { - this.isbn = isbn - this.title = "The Art of Computer Programming" - this.authors = setOf("Donald Knuth") - }.fromDomainToView() - )*/ } } else { error("Invalid ISBN") } } + /** + * Creates a school supply. + * + * @param schoolSupplyView the school supply view. + * @param success the success callback. + * @param error the error callback. + */ fun createSchoolSupply(schoolSupplyView: SchoolSupplyView, success: () -> Unit, error: (String) -> Unit) { viewModelScope.launch { desktopUseCase.addSchoolSupply(schoolSupplyView.fromViewToDomain()) @@ -124,7 +124,7 @@ class SchoolSupplyViewModel( schoolSuppliesImpl.postValue(it.schoolSupplies.map { it.fromDomainToView() }.toSet()) success() }.onFailure { - error(it.message ?: "Unknown error") + error(it.messageOrDefault()) } } } diff --git a/app/src/main/kotlin/com/intelligentbackpack/app/viewmodel/UserViewModel.kt b/app/src/main/kotlin/com/intelligentbackpack/app/viewmodel/UserViewModel.kt index 077ab6d3..835731b1 100644 --- a/app/src/main/kotlin/com/intelligentbackpack/app/viewmodel/UserViewModel.kt +++ b/app/src/main/kotlin/com/intelligentbackpack/app/viewmodel/UserViewModel.kt @@ -9,6 +9,7 @@ import androidx.lifecycle.viewmodel.initializer import androidx.lifecycle.viewmodel.viewModelFactory import com.intelligentbackpack.accessdomain.usecase.AccessUseCase import com.intelligentbackpack.app.App +import com.intelligentbackpack.app.exceptionhandler.ExceptionMessage.messageOrDefault import com.intelligentbackpack.app.viewdata.UserView import com.intelligentbackpack.app.viewdata.adapter.UserAdapter.fromDomainToView import kotlinx.coroutines.launch @@ -38,7 +39,7 @@ class UserViewModel( success(user.fromDomainToView()) } .onFailure { - error(it.message ?: "Unknown error") + error(it.messageOrDefault()) } } } @@ -56,7 +57,7 @@ class UserViewModel( success() } .onFailure { - error(it.message ?: "Unknown error") + error(it.messageOrDefault()) } } } @@ -73,7 +74,7 @@ class UserViewModel( userImpl.postValue(null) success() }.onFailure { - error(it.message ?: "Unknown error") + error(it.messageOrDefault()) } } }