Skip to content

Commit 09334ae

Browse files
committed
feat: Replace R2dbcDataIntegrityViolationException with ExposedR2dbcException for improved error handling
1 parent 96ffeee commit 09334ae

File tree

3 files changed

+10
-9
lines changed

3 files changed

+10
-9
lines changed

surf-clan-runtime/src/main/kotlin/dev/slne/surf/clan/runtime/db/repository/impl/ClanInviteRepositoryImpl.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ import dev.slne.surf.clan.runtime.db.table.ClanInvitesTable
88
import dev.slne.surf.clan.runtime.db.table.ClanMembersTable
99
import dev.slne.surf.clan.runtime.db.table.ClanPlayerTable
1010
import dev.slne.surf.clan.runtime.db.table.ClansTable
11-
import dev.slne.surf.database.libs.io.r2dbc.spi.R2dbcDataIntegrityViolationException
1211
import dev.slne.surf.database.libs.org.jetbrains.exposed.v1.core.ResultRow
1312
import dev.slne.surf.database.libs.org.jetbrains.exposed.v1.core.and
1413
import dev.slne.surf.database.libs.org.jetbrains.exposed.v1.core.eq
1514
import dev.slne.surf.database.libs.org.jetbrains.exposed.v1.core.inSubQuery
1615
import dev.slne.surf.database.libs.org.jetbrains.exposed.v1.r2dbc.*
1716
import dev.slne.surf.database.libs.org.jetbrains.exposed.v1.r2dbc.transactions.suspendTransaction
17+
import dev.slne.surf.database.utils.asDataIntegrityViolation
1818
import kotlinx.coroutines.flow.*
1919
import java.util.*
2020

@@ -76,7 +76,8 @@ class ClanInviteRepositoryImpl : ClanInviteRepository {
7676
}.single()
7777

7878
ClanInviteResult.Success(createClanInviteDAO(row))
79-
} catch (_: R2dbcDataIntegrityViolationException) {
79+
} catch (e: ExposedR2dbcException) {
80+
e.asDataIntegrityViolation()
8081
ClanInviteResult.AlreadyInvited
8182
}
8283
}

surf-clan-runtime/src/main/kotlin/dev/slne/surf/clan/runtime/db/repository/impl/ClanMemberRepositoryImpl.kt

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,12 @@ import dev.slne.clan.api.member.ClanMemberRole
66
import dev.slne.clan.core.member.ClanMemberImpl
77
import dev.slne.surf.clan.runtime.db.repository.ClanMemberRepository
88
import dev.slne.surf.clan.runtime.db.table.ClanMembersTable
9-
import dev.slne.surf.database.libs.io.r2dbc.spi.R2dbcDataIntegrityViolationException
109
import dev.slne.surf.database.libs.org.jetbrains.exposed.v1.core.ResultRow
1110
import dev.slne.surf.database.libs.org.jetbrains.exposed.v1.core.and
1211
import dev.slne.surf.database.libs.org.jetbrains.exposed.v1.core.eq
13-
import dev.slne.surf.database.libs.org.jetbrains.exposed.v1.r2dbc.deleteWhere
14-
import dev.slne.surf.database.libs.org.jetbrains.exposed.v1.r2dbc.insertReturning
15-
import dev.slne.surf.database.libs.org.jetbrains.exposed.v1.r2dbc.selectAll
12+
import dev.slne.surf.database.libs.org.jetbrains.exposed.v1.r2dbc.*
1613
import dev.slne.surf.database.libs.org.jetbrains.exposed.v1.r2dbc.transactions.suspendTransaction
17-
import dev.slne.surf.database.libs.org.jetbrains.exposed.v1.r2dbc.update
14+
import dev.slne.surf.database.utils.asDataIntegrityViolation
1815
import kotlinx.coroutines.flow.single
1916
import kotlinx.coroutines.flow.singleOrNull
2017
import java.util.*
@@ -36,7 +33,8 @@ class ClanMemberRepositoryImpl : ClanMemberRepository {
3633
}.single()
3734

3835
ClanMemberAddResult.Success(createMemberDAO(row))
39-
} catch (_: R2dbcDataIntegrityViolationException) {
36+
} catch (e: ExposedR2dbcException) {
37+
e.asDataIntegrityViolation()
4038
ClanMemberAddResult.AlreadyMember
4139
}
4240
}

surf-clan-runtime/src/main/kotlin/dev/slne/surf/clan/runtime/db/repository/impl/ClanRepositoryImpl.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import dev.slne.surf.database.libs.io.r2dbc.spi.R2dbcDataIntegrityViolationExcep
1212
import dev.slne.surf.database.libs.org.jetbrains.exposed.v1.core.*
1313
import dev.slne.surf.database.libs.org.jetbrains.exposed.v1.r2dbc.*
1414
import dev.slne.surf.database.libs.org.jetbrains.exposed.v1.r2dbc.transactions.suspendTransaction
15+
import dev.slne.surf.database.utils.asDataIntegrityViolation
1516
import dev.slne.surf.surfapi.core.api.util.logger
1617
import kotlinx.coroutines.flow.map
1718
import kotlinx.coroutines.flow.single
@@ -122,7 +123,8 @@ class ClanRepositoryImpl : ClanRepository {
122123
description?.let { smt[this.description] = it }
123124
discordInvite?.let { smt[this.discordInvite] = it }
124125
}.single()
125-
} catch (e: R2dbcDataIntegrityViolationException) {
126+
} catch (e: ExposedR2dbcException) {
127+
val e = e.asDataIntegrityViolation()
126128
val msg = e.message ?: throw e
127129
return@suspendTransaction when {
128130
ClansTable.TAG_UQ_INDEX_NAME in msg -> ClanCreationResult.ClanTagAlreadyExists

0 commit comments

Comments
 (0)