Skip to content

Commit e1905c9

Browse files
committed
0.2.4 release (more robust error handling, better logging, unkown json keys fix)
1 parent bba4f77 commit e1905c9

File tree

15 files changed

+361
-158
lines changed

15 files changed

+361
-158
lines changed

.idea/modules/ynab-mono.main.iml

+68
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/modules/ynab-mono.test.iml

+88
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

build.gradle.kts

+22-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import com.github.breadmoirai.githubreleaseplugin.GithubReleaseTask
12
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
23

34
plugins {
@@ -7,14 +8,16 @@ plugins {
78
id("com.github.johnrengelman.shadow")
89
id("org.jlleitschuh.gradle.ktlint")
910
id("io.gitlab.arturbosch.detekt")
11+
id("com.github.breadmoirai.github-release")
1012
}
1113

1214
group = "com.github.smaugfm"
13-
version = "0.2.3-alpha"
15+
version = "0.2.4"
1416

1517
val myMavenRepoReadUrl: String by project
1618
val myMavenRepoReadUsername: String by project
1719
val myMavenRepoReadPassword: String by project
20+
val githubToken: String by project
1821

1922
repositories {
2023
maven(url = "https://jitpack.io")
@@ -47,10 +50,27 @@ githook {
4750
}
4851
}
4952

53+
githubRelease {
54+
token(githubToken)
55+
prerelease.set(true)
56+
overwrite.set(true)
57+
dryRun.set(false)
58+
releaseAssets.setFrom(
59+
files(
60+
"$buildDir/libs/${project.name}-${project.version}-fat.jar"
61+
)
62+
)
63+
}
64+
65+
tasks.withType<GithubReleaseTask>().configureEach {
66+
dependsOn(":shadowJar")
67+
}
68+
5069
tasks {
5170
withType<KotlinCompile> {
5271
kotlinOptions.jvmTarget = "1.8"
5372
kotlinOptions.freeCompilerArgs += "-Xopt-in=kotlin.time.ExperimentalTime"
73+
kotlinOptions.freeCompilerArgs += "-Xopt-in=kotlinx.serialization.ExperimentalSerializationApi"
5474
}
5575

5676
test {
@@ -87,6 +107,7 @@ dependencies {
87107
implementation("io.ktor:ktor-client-serialization:_")
88108
implementation("io.github.microutils:kotlin-logging:_")
89109
implementation("org.slf4j:slf4j-simple:_")
110+
implementation("com.google.code.gson:gson:_")
90111

91112
testImplementation("io.mockk:mockk:_")
92113
testImplementation("com.willowtreeapps.assertk:assertk-jvm:_")

src/main/kotlin/com/github/smaugfm/events/EventDispatcher.kt

+9-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.github.smaugfm.events
22

3+
import com.github.smaugfm.util.pp
34
import mu.KotlinLogging
45

56
private val logger = KotlinLogging.logger {}
@@ -16,17 +17,22 @@ open class EventDispatcher(
1617
}
1718

1819
override suspend fun <R, E : IEvent<R>> invoke(event: E): R? {
20+
val eventName = event::class.simpleName
21+
22+
logger.info("Event $eventName dispatched: ${event.pp()}")
1923
@Suppress("UNCHECKED_CAST")
20-
logger.info("Event dispatched: $event")
2124
val handler = handlers[event.javaClass] as? IEventHandler<R, E>
2225
?: throw IllegalStateException("No handler found for event $event, ${event.javaClass}")
2326

2427
return try {
2528
handler.handle(this, event).also {
26-
logger.info("Event handled: $it")
29+
if (it is Unit)
30+
logger.info("Event $eventName handled.")
31+
else
32+
logger.info("Event ${event::class.simpleName} handled: ${it?.pp()}")
2733
}
2834
} catch (e: Throwable) {
29-
logger.error("Error handling event.", e)
35+
logger.error("Error handling event $eventName.\n", e.pp())
3036
errorHandler(this, event, e)
3137
null
3238
}

src/main/kotlin/com/github/smaugfm/mono/MonoAccount.kt

+1-17
Original file line numberDiff line numberDiff line change
@@ -15,20 +15,4 @@ data class MonoAccount(
1515
val iban: String,
1616
val maskedPan: List<String>,
1717
val type: String,
18-
) {
19-
override fun toString(): String {
20-
val builder = StringBuilder()
21-
builder.append("MonoAccount {\n")
22-
builder.append("\tid: $id\n")
23-
builder.append("\tbalance: $balance\n")
24-
builder.append("\tcreditLimit: $creditLimit\n")
25-
builder.append("\tcurrencyCode: $currencyCode\n")
26-
builder.append("\tcashbackType: $cashbackType\n")
27-
builder.append("\tiban: $iban\n")
28-
builder.append("\tmaskedPan: $maskedPan\n")
29-
builder.append("\ttype: $type\n")
30-
builder.append("}")
31-
32-
return builder.toString()
33-
}
34-
}
18+
)

0 commit comments

Comments
 (0)