diff --git a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/infrastructure/exposedrepository/InstanceRepositoryImpl.kt b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/infrastructure/exposedrepository/InstanceRepositoryImpl.kt index c7259dbb..09c2b9be 100644 --- a/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/infrastructure/exposedrepository/InstanceRepositoryImpl.kt +++ b/hideout-core/src/main/kotlin/dev/usbharu/hideout/core/infrastructure/exposedrepository/InstanceRepositoryImpl.kt @@ -17,6 +17,7 @@ package dev.usbharu.hideout.core.infrastructure.exposedrepository import dev.usbharu.hideout.core.domain.model.instance.* +import dev.usbharu.hideout.core.infrastructure.exposed.uri import org.jetbrains.exposed.sql.* import org.jetbrains.exposed.sql.SqlExpressionBuilder.eq import org.jetbrains.exposed.sql.javatime.timestamp @@ -37,9 +38,9 @@ class InstanceRepositoryImpl : InstanceRepository, it[id] = instance.id.instanceId it[name] = instance.name.name it[description] = instance.description.description - it[url] = instance.url.toString() - it[iconUrl] = instance.iconUrl.toString() - it[sharedInbox] = instance.sharedInbox?.toString() + it[url] = instance.url + it[iconUrl] = instance.iconUrl + it[sharedInbox] = instance.sharedInbox it[software] = instance.software.software it[version] = instance.version.version it[isBlocked] = instance.isBlocked @@ -61,7 +62,7 @@ class InstanceRepositoryImpl : InstanceRepository, } override suspend fun findByUrl(url: URI): dev.usbharu.hideout.core.domain.model.instance.Instance? = query { - return@query Instance.selectAll().where { Instance.url eq url.toString() }.limit(1).singleOrNull()?.toInstance() + return@query Instance.selectAll().where { Instance.url eq url }.limit(1).singleOrNull()?.toInstance() } companion object { @@ -74,9 +75,9 @@ fun ResultRow.toInstance(): InstanceEntity { id = InstanceId(this[Instance.id]), name = InstanceName(this[Instance.name]), description = InstanceDescription(this[Instance.description]), - url = URI.create(this[Instance.url]), - iconUrl = URI.create(this[Instance.iconUrl]), - sharedInbox = this[Instance.sharedInbox]?.let { URI.create(it) }, + url = this[Instance.url], + iconUrl = this[Instance.iconUrl], + sharedInbox = this[Instance.sharedInbox], software = InstanceSoftware(this[Instance.software]), version = InstanceVersion(this[Instance.version]), isBlocked = this[Instance.isBlocked], @@ -90,9 +91,9 @@ object Instance : Table("instance") { val id = long("id") val name = varchar("name", 1000) val description = varchar("description", 5000) - val url = varchar("url", 255).uniqueIndex() - val iconUrl = varchar("icon_url", 255) - val sharedInbox = varchar("shared_inbox", 255).nullable().uniqueIndex() + val url = uri("url", 255).uniqueIndex() + val iconUrl = uri("icon_url", 255) + val sharedInbox = uri("shared_inbox", 255).nullable().uniqueIndex() val software = varchar("software", 255) val version = varchar("version", 255) val isBlocked = bool("is_blocked") diff --git a/hideout-core/src/test/kotlin/dev/usbharu/hideout/core/infrastructure/exposedrepository/InstanceRepositoryImplTest.kt b/hideout-core/src/test/kotlin/dev/usbharu/hideout/core/infrastructure/exposedrepository/InstanceRepositoryImplTest.kt index ec30240f..6bcb52fb 100644 --- a/hideout-core/src/test/kotlin/dev/usbharu/hideout/core/infrastructure/exposedrepository/InstanceRepositoryImplTest.kt +++ b/hideout-core/src/test/kotlin/dev/usbharu/hideout/core/infrastructure/exposedrepository/InstanceRepositoryImplTest.kt @@ -44,8 +44,9 @@ class InstanceRepositoryImplTest : AbstractRepositoryTest(InstanceTable) { val table = assertTable assertThat(table).row(1).isEqualTo(InstanceTable.id, 1).isEqualTo(InstanceTable.name, "test") - .isEqualTo(InstanceTable.url, "https://www.example.com") - .isEqualTo(InstanceTable.iconUrl, "https://www.example.com").isEqualTo(InstanceTable.sharedInbox, null) + .value(InstanceTable.url).isEqualTo("https://www.example.com") + .value(InstanceTable.iconUrl).isEqualTo("https://www.example.com") + .isEqualTo(InstanceTable.sharedInbox, null) .isEqualTo(InstanceTable.software, "").isEqualTo(InstanceTable.version, "") .isEqualTo(InstanceTable.isBlocked, false).isEqualTo(InstanceTable.isMuted, false) .isEqualTo(InstanceTable.moderationNote, "").value(InstanceTable.createdAt) @@ -96,8 +97,9 @@ class InstanceRepositoryImplTest : AbstractRepositoryTest(InstanceTable) { val table = assertTable assertThat(table).row(1).isEqualTo(InstanceTable.id, 1).isEqualTo(InstanceTable.name, "test") - .isEqualTo(InstanceTable.url, "https://www.example.com") - .isEqualTo(InstanceTable.iconUrl, "https://www.example.com").isEqualTo(InstanceTable.sharedInbox, null) + .value(InstanceTable.url).isEqualTo("https://www.example.com") + .value(InstanceTable.iconUrl).isEqualTo("https://www.example.com") + .isEqualTo(InstanceTable.sharedInbox, null) .isEqualTo(InstanceTable.software, "").isEqualTo(InstanceTable.version, "") .isEqualTo(InstanceTable.isBlocked, false).isEqualTo(InstanceTable.isMuted, false) .isEqualTo(InstanceTable.moderationNote, "").value(InstanceTable.createdAt)