Skip to content

Commit 7ce347c

Browse files
committed
refactor: simplify error handling and remove unused fields
1 parent a9945b4 commit 7ce347c

File tree

10 files changed

+24
-98
lines changed

10 files changed

+24
-98
lines changed

shared/src/androidUnitTest/kotlin/com/prof18/moneyflow/ComponentsRoborazziTest.kt

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import com.prof18.moneyflow.ui.components.TransactionCard
88
import com.prof18.moneyflow.ui.style.MoneyFlowTheme
99
import money_flow.shared.generated.resources.Res
1010
import money_flow.shared.generated.resources.error_get_categories_message
11-
import money_flow.shared.generated.resources.error_nerd_message
1211
import money_flow.shared.generated.resources.settings_screen
1312
import org.jetbrains.compose.resources.stringResource
1413
import org.junit.Test
@@ -63,10 +62,6 @@ class ComponentsRoborazziTest : RoborazziTestBase() {
6362
com.prof18.moneyflow.ui.components.ErrorView(
6463
uiErrorMessage = UIErrorMessage(
6564
message = Res.string.error_get_categories_message,
66-
messageKey = "error_get_categories_message",
67-
nerdMessage = Res.string.error_nerd_message,
68-
nerdMessageKey = "error_nerd_message",
69-
nerdMessageArgs = listOf("101"),
7065
),
7166
)
7267
}

shared/src/commonMain/kotlin/com/prof18/moneyflow/features/addtransaction/AddTransactionViewModel.kt

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import kotlinx.datetime.atStartOfDayIn
2525
import kotlinx.datetime.toLocalDateTime
2626
import money_flow.shared.generated.resources.Res
2727
import money_flow.shared.generated.resources.amount_not_empty_error
28-
import money_flow.shared.generated.resources.error_nerd_message
2928
import kotlin.time.Clock
3029

3130
internal class AddTransactionViewModel(
@@ -96,11 +95,6 @@ internal class AddTransactionViewModel(
9695
if (amountCents == null) {
9796
val errorMessage = UIErrorMessage(
9897
message = Res.string.amount_not_empty_error,
99-
messageKey = "amount_not_empty_error",
100-
messageArgs = emptyList(),
101-
nerdMessage = Res.string.error_nerd_message,
102-
nerdMessageKey = "error_nerd_message",
103-
nerdMessageArgs = emptyList(),
10498
)
10599
_uiState.update { state ->
106100
state.copy(addTransactionAction = AddTransactionAction.ShowError(errorMessage))

shared/src/commonMain/kotlin/com/prof18/moneyflow/presentation/MoneyFlowErrorMapper.kt

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,12 @@ import money_flow.shared.generated.resources.error_delete_transaction_message
1919
import money_flow.shared.generated.resources.error_get_all_transaction_message
2020
import money_flow.shared.generated.resources.error_get_categories_message
2121
import money_flow.shared.generated.resources.error_get_money_summary_message
22-
import money_flow.shared.generated.resources.error_nerd_message
2322

2423
internal class MoneyFlowErrorMapper {
2524

2625
fun getUIErrorMessage(error: MoneyFlowError): UIErrorMessage {
2726
return UIErrorMessage(
2827
message = error.getErrorMessageRes(),
29-
messageKey = error.getErrorMessageKey(),
30-
messageArgs = emptyList(),
31-
nerdMessage = Res.string.error_nerd_message,
32-
nerdMessageKey = "error_nerd_message",
33-
nerdMessageArgs = listOf(error.code.toString()),
3428
)
3529
}
3630

@@ -44,15 +38,4 @@ internal class MoneyFlowErrorMapper {
4438
is DatabaseImport -> Res.string.error_database_import
4539
is DatabaseNotFound -> Res.string.database_file_not_found
4640
}
47-
48-
private fun MoneyFlowError.getErrorMessageKey() = when (this) {
49-
is AddTransaction -> "error_add_transaction_message"
50-
is DeleteTransaction -> "error_delete_transaction_message"
51-
is GetAllTransaction -> "error_get_all_transaction_message"
52-
is GetCategories -> "error_get_categories_message"
53-
is GetMoneySummary -> "error_get_money_summary_message"
54-
is DatabaseExport -> "error_database_export"
55-
is DatabaseImport -> "error_database_import"
56-
is DatabaseNotFound -> "database_file_not_found"
57-
}
5841
}

shared/src/commonMain/kotlin/com/prof18/moneyflow/presentation/addtransaction/AddTransactionScreen.kt

Lines changed: 3 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ import org.jetbrains.compose.resources.painterResource
4444
import org.jetbrains.compose.resources.stringResource
4545

4646
@Composable
47-
@Suppress("LongMethod", "LongParameterList", "SpreadOperator") // TODO: reduce method length
47+
@Suppress("LongMethod", "LongParameterList") // TODO: reduce method length
4848
internal fun AddTransactionScreen(
4949
categoryState: State<CategoryUIData?>,
5050
navigateUp: () -> Unit,
@@ -75,27 +75,9 @@ internal fun AddTransactionScreen(
7575
resetAction()
7676
}
7777
is AddTransactionAction.ShowError -> {
78-
val messageText = stringResource(
79-
it.uiErrorMessage.message,
80-
*it.uiErrorMessage.messageArgs.toTypedArray(),
81-
)
82-
val nerdText = if (it.uiErrorMessage.nerdMessageArgs.isNotEmpty()) {
83-
stringResource(
84-
it.uiErrorMessage.nerdMessage,
85-
*it.uiErrorMessage.nerdMessageArgs.toTypedArray(),
86-
)
87-
} else {
88-
""
89-
}
78+
val messageText = stringResource(it.uiErrorMessage.message)
9079
LaunchedEffect(snackbarHostState, resetAction) {
91-
val message = buildString {
92-
append(messageText)
93-
if (nerdText.isNotBlank()) {
94-
append("\n")
95-
append(nerdText)
96-
}
97-
}
98-
snackbarHostState.showSnackbar(message)
80+
snackbarHostState.showSnackbar(messageText)
9981
resetAction()
10082
}
10183
}

shared/src/commonMain/kotlin/com/prof18/moneyflow/presentation/categories/CategoriesScreen.kt

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import money_flow.shared.generated.resources.Res
2424
import money_flow.shared.generated.resources.add
2525
import money_flow.shared.generated.resources.categories_screen
2626
import money_flow.shared.generated.resources.error_get_categories_message
27-
import money_flow.shared.generated.resources.error_nerd_message
2827
import org.jetbrains.compose.resources.stringResource
2928

3029
@Composable
@@ -117,10 +116,6 @@ private fun CategoriesScreenErrorPreview() {
117116
categoryModel = CategoryModel.Error(
118117
uiErrorMessage = UIErrorMessage(
119118
message = Res.string.error_get_categories_message,
120-
messageKey = "error_get_categories_message",
121-
nerdMessage = Res.string.error_nerd_message,
122-
nerdMessageKey = "error_nerd_message",
123-
nerdMessageArgs = listOf("101"),
124119
),
125120
),
126121
)

shared/src/commonMain/kotlin/com/prof18/moneyflow/presentation/home/HomeScreen.kt

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ import money_flow.shared.generated.resources.Res
4646
import money_flow.shared.generated.resources.delete
4747
import money_flow.shared.generated.resources.empty_wallet
4848
import money_flow.shared.generated.resources.error_get_money_summary_message
49-
import money_flow.shared.generated.resources.error_nerd_message
5049
import money_flow.shared.generated.resources.hide_sensitive_data
5150
import money_flow.shared.generated.resources.latest_transactions
5251
import money_flow.shared.generated.resources.my_wallet
@@ -256,10 +255,6 @@ private fun HomeScreenErrorPreview() {
256255
homeModel = HomeModel.Error(
257256
UIErrorMessage(
258257
message = Res.string.error_get_money_summary_message,
259-
messageKey = "error_get_money_summary_message",
260-
nerdMessage = Res.string.error_nerd_message,
261-
nerdMessageKey = "error_nerd_message",
262-
nerdMessageArgs = listOf("101"),
263258
),
264259
),
265260
hideSensitiveDataState = true,
Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
package com.prof18.moneyflow.presentation.model
22

3-
// TODO: delete unused fields
3+
import org.jetbrains.compose.resources.StringResource
4+
45
internal data class UIErrorMessage(
5-
val message: org.jetbrains.compose.resources.StringResource,
6-
val messageKey: String,
7-
val messageArgs: List<String> = emptyList(),
8-
val nerdMessage: org.jetbrains.compose.resources.StringResource,
9-
val nerdMessageKey: String,
10-
val nerdMessageArgs: List<String> = emptyList(),
6+
val message: StringResource,
117
)

shared/src/commonMain/kotlin/com/prof18/moneyflow/presentation/model/UIErrorMessageFactory.kt

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,12 @@ import money_flow.shared.generated.resources.error_delete_transaction_message
1010
import money_flow.shared.generated.resources.error_get_all_transaction_message
1111
import money_flow.shared.generated.resources.error_get_categories_message
1212
import money_flow.shared.generated.resources.error_get_money_summary_message
13-
import money_flow.shared.generated.resources.error_nerd_message
1413
import org.jetbrains.compose.resources.StringResource
1514

1615
internal fun uiErrorMessageFromKeys(
1716
messageKey: String,
18-
nerdMessageKey: String,
19-
messageArgs: List<String> = emptyList(),
20-
nerdMessageArgs: List<String> = emptyList(),
2117
): UIErrorMessage = UIErrorMessage(
2218
message = messageKey.toStringResource(),
23-
messageKey = messageKey,
24-
messageArgs = messageArgs,
25-
nerdMessage = nerdMessageKey.toStringResource(),
26-
nerdMessageKey = nerdMessageKey,
27-
nerdMessageArgs = nerdMessageArgs,
2819
)
2920

3021
internal fun String.toStringResource(): StringResource = when (this) {
@@ -37,6 +28,5 @@ internal fun String.toStringResource(): StringResource = when (this) {
3728
"error_database_export" -> Res.string.error_database_export
3829
"error_database_import" -> Res.string.error_database_import
3930
"database_file_not_found" -> Res.string.database_file_not_found
40-
"error_nerd_message" -> Res.string.error_nerd_message
4131
else -> Res.string.error_get_money_summary_message
4232
}

shared/src/commonMain/kotlin/com/prof18/moneyflow/ui/components/ErrorView.kt

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,9 @@ import com.prof18.moneyflow.ui.style.Margins
1717
import com.prof18.moneyflow.ui.style.MoneyFlowTheme
1818
import money_flow.shared.generated.resources.Res
1919
import money_flow.shared.generated.resources.error_add_transaction_message
20-
import money_flow.shared.generated.resources.error_nerd_message
2120
import money_flow.shared.generated.resources.shrug
2221
import org.jetbrains.compose.resources.stringResource
2322

24-
@Suppress("SpreadOperator")
2523
@Composable
2624
internal fun ErrorView(
2725
uiErrorMessage: UIErrorMessage,
@@ -42,24 +40,9 @@ internal fun ErrorView(
4240
)
4341

4442
Text(
45-
text = stringResource(
46-
uiErrorMessage.message,
47-
*uiErrorMessage.messageArgs.toTypedArray(),
48-
),
43+
text = stringResource(uiErrorMessage.message),
4944
style = MaterialTheme.typography.bodyLarge,
5045
)
51-
if (uiErrorMessage.nerdMessageArgs.isNotEmpty()) {
52-
val nerdMessage = stringResource(
53-
uiErrorMessage.nerdMessage,
54-
*uiErrorMessage.nerdMessageArgs.toTypedArray(),
55-
)
56-
if (nerdMessage.isNotBlank()) {
57-
Text(
58-
text = nerdMessage,
59-
style = MaterialTheme.typography.bodySmall,
60-
)
61-
}
62-
}
6346
}
6447
}
6548
}
@@ -69,10 +52,6 @@ internal fun ErrorView(
6952
private fun ErrorViewPreview() {
7053
val message = UIErrorMessage(
7154
message = Res.string.error_add_transaction_message,
72-
messageKey = "error_add_transaction_message",
73-
nerdMessage = Res.string.error_nerd_message,
74-
nerdMessageKey = "error_nerd_message",
75-
nerdMessageArgs = listOf("101"),
7655
)
7756

7857
Surface {
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.prof18.moneyflow.utilities
2+
3+
import kotlin.test.Test
4+
import kotlin.test.assertNotNull
5+
6+
internal class DatabaseHelperIosTest {
7+
8+
@Test
9+
fun shouldInitializeAndCloseDatabaseHelper() {
10+
createDriver()
11+
try {
12+
assertNotNull(getDatabaseHelper())
13+
} finally {
14+
closeDriver()
15+
}
16+
}
17+
}

0 commit comments

Comments
 (0)