mirror of https://github.com/usbharu/Hideout.git
chore: ExposedのAPIを更新
This commit is contained in:
parent
4045a945ba
commit
54224a9d56
|
@ -1,6 +1,5 @@
|
|||
import dev.usbharu.hideout.core.infrastructure.exposedrepository.Actors
|
||||
import org.jetbrains.exposed.sql.and
|
||||
import org.jetbrains.exposed.sql.select
|
||||
import org.jetbrains.exposed.sql.selectAll
|
||||
import java.net.MalformedURLException
|
||||
import java.net.URL
|
||||
|
@ -23,6 +22,6 @@ object AssertionUtil {
|
|||
|
||||
selectAll.map { "@${it[Actors.name]}@${it[Actors.domain]}" }.forEach { println(it) }
|
||||
|
||||
return Actors.select { Actors.name eq username and (Actors.domain eq s) }.empty().not()
|
||||
return Actors.selectAll().where { Actors.name eq username and (Actors.domain eq s) }.empty().not()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@ import dev.usbharu.hideout.SpringApplication
|
|||
import dev.usbharu.hideout.core.infrastructure.springframework.oauth2.RegisteredClient
|
||||
import org.assertj.core.api.Assertions.assertThat
|
||||
import org.flywaydb.core.Flyway
|
||||
import org.jetbrains.exposed.sql.select
|
||||
import org.jetbrains.exposed.sql.selectAll
|
||||
import org.junit.jupiter.api.AfterAll
|
||||
import org.junit.jupiter.api.BeforeEach
|
||||
import org.junit.jupiter.api.Test
|
||||
|
@ -55,7 +55,7 @@ class AppTest {
|
|||
|
||||
|
||||
val app = RegisteredClient
|
||||
.select { RegisteredClient.clientName eq "test-client" }
|
||||
.selectAll().where { RegisteredClient.clientName eq "test-client" }
|
||||
.single()
|
||||
|
||||
assertThat(app[RegisteredClient.clientName]).isEqualTo("test-client")
|
||||
|
@ -80,7 +80,7 @@ class AppTest {
|
|||
.andExpect { status { isOk() } }
|
||||
|
||||
val app = RegisteredClient
|
||||
.select { RegisteredClient.clientName eq "test-client-2" }
|
||||
.selectAll().where { RegisteredClient.clientName eq "test-client-2" }
|
||||
.single()
|
||||
|
||||
assertThat(app[RegisteredClient.clientName]).isEqualTo("test-client-2")
|
||||
|
|
|
@ -9,7 +9,7 @@ import dev.usbharu.hideout.core.infrastructure.exposedrepository.toReaction
|
|||
import org.assertj.core.api.Assertions.assertThat
|
||||
import org.flywaydb.core.Flyway
|
||||
import org.jetbrains.exposed.sql.and
|
||||
import org.jetbrains.exposed.sql.select
|
||||
import org.jetbrains.exposed.sql.selectAll
|
||||
import org.junit.jupiter.api.AfterAll
|
||||
import org.junit.jupiter.api.BeforeEach
|
||||
import org.junit.jupiter.api.Test
|
||||
|
@ -61,7 +61,7 @@ class StatusTest {
|
|||
contentType = MediaType.APPLICATION_JSON
|
||||
content = """{"status":"hello"}"""
|
||||
with(
|
||||
SecurityMockMvcRequestPostProcessors.jwt()
|
||||
jwt()
|
||||
.jwt { it.claim("uid", "1") }.authorities(SimpleGrantedAuthority("SCOPE_write"))
|
||||
)
|
||||
}
|
||||
|
@ -76,7 +76,7 @@ class StatusTest {
|
|||
contentType = MediaType.APPLICATION_JSON
|
||||
content = """{"status":"hello"}"""
|
||||
with(
|
||||
SecurityMockMvcRequestPostProcessors.jwt()
|
||||
jwt()
|
||||
.jwt { it.claim("uid", "1") }.authorities(SimpleGrantedAuthority("SCOPE_write:statuses"))
|
||||
)
|
||||
}
|
||||
|
@ -91,7 +91,7 @@ class StatusTest {
|
|||
contentType = MediaType.APPLICATION_JSON
|
||||
content = """{"status":"hello"}"""
|
||||
with(
|
||||
SecurityMockMvcRequestPostProcessors.jwt()
|
||||
jwt()
|
||||
.jwt { it.claim("uid", "1") }.authorities(SimpleGrantedAuthority("SCOPE_read"))
|
||||
)
|
||||
}
|
||||
|
@ -128,7 +128,7 @@ class StatusTest {
|
|||
contentType = MediaType.APPLICATION_FORM_URLENCODED
|
||||
param("status", "hello")
|
||||
with(
|
||||
SecurityMockMvcRequestPostProcessors.jwt()
|
||||
jwt()
|
||||
.jwt { it.claim("uid", "1") }.authorities(SimpleGrantedAuthority("SCOPE_write:statuses"))
|
||||
)
|
||||
}
|
||||
|
@ -147,7 +147,7 @@ class StatusTest {
|
|||
"in_reply_to_id": "1"
|
||||
}"""
|
||||
with(
|
||||
SecurityMockMvcRequestPostProcessors.jwt()
|
||||
jwt()
|
||||
.jwt { it.claim("uid", "1") }.authorities(SimpleGrantedAuthority("SCOPE_write"))
|
||||
)
|
||||
}
|
||||
|
@ -167,7 +167,8 @@ class StatusTest {
|
|||
.asyncDispatch()
|
||||
.andExpect { status { isOk() } }
|
||||
|
||||
val reaction = Reactions.select { Reactions.postId eq 1 and (Reactions.actorId eq 1) }.single().toReaction()
|
||||
val reaction =
|
||||
Reactions.selectAll().where { Reactions.postId eq 1 and (Reactions.actorId eq 1) }.single().toReaction()
|
||||
assertThat(reaction.emoji).isEqualTo(UnicodeEmoji("😭"))
|
||||
assertThat(reaction.postId).isEqualTo(1)
|
||||
assertThat(reaction.actorId).isEqualTo(1)
|
||||
|
@ -183,7 +184,8 @@ class StatusTest {
|
|||
.asyncDispatch()
|
||||
.andExpect { status { isOk() } }
|
||||
|
||||
val reaction = Reactions.select { Reactions.postId eq 1 and (Reactions.actorId eq 1) }.single().toReaction()
|
||||
val reaction =
|
||||
Reactions.selectAll().where { Reactions.postId eq 1 and (Reactions.actorId eq 1) }.single().toReaction()
|
||||
assertThat(reaction.emoji).isEqualTo(UnicodeEmoji("❤"))
|
||||
assertThat(reaction.postId).isEqualTo(1)
|
||||
assertThat(reaction.actorId).isEqualTo(1)
|
||||
|
@ -200,7 +202,8 @@ class StatusTest {
|
|||
.andExpect { status { isOk() } }
|
||||
|
||||
val reaction =
|
||||
Reactions.leftJoin(CustomEmojis).select { Reactions.postId eq 1 and (Reactions.actorId eq 1) }.single()
|
||||
Reactions.leftJoin(CustomEmojis).selectAll().where { Reactions.postId eq 1 and (Reactions.actorId eq 1) }
|
||||
.single()
|
||||
.toReaction()
|
||||
assertThat(reaction.emoji).isEqualTo(
|
||||
CustomEmoji(
|
||||
|
|
|
@ -10,7 +10,7 @@ import dev.usbharu.hideout.core.domain.model.post.Visibility
|
|||
import dev.usbharu.hideout.core.infrastructure.exposedrepository.Actors
|
||||
import dev.usbharu.hideout.core.infrastructure.exposedrepository.Posts
|
||||
import org.jetbrains.exposed.sql.ResultRow
|
||||
import org.jetbrains.exposed.sql.select
|
||||
import org.jetbrains.exposed.sql.selectAll
|
||||
import org.springframework.stereotype.Repository
|
||||
import java.time.Instant
|
||||
|
||||
|
@ -22,7 +22,7 @@ class ExposedAnnounceQueryService(
|
|||
override suspend fun findById(id: Long): Pair<Announce, Post>? {
|
||||
return Posts
|
||||
.leftJoin(Actors)
|
||||
.select { Posts.id eq id }
|
||||
.selectAll().where { Posts.id eq id }
|
||||
.singleOrNull()
|
||||
?.let { (it.toAnnounce() ?: return null) to (postResultRowMapper.map(it)) }
|
||||
}
|
||||
|
@ -30,7 +30,7 @@ class ExposedAnnounceQueryService(
|
|||
override suspend fun findByApId(apId: String): Pair<Announce, Post>? {
|
||||
return Posts
|
||||
.leftJoin(Actors)
|
||||
.select { Posts.apId eq apId }
|
||||
.selectAll().where { Posts.apId eq apId }
|
||||
.singleOrNull()
|
||||
?.let { (it.toAnnounce() ?: return null) to (postResultRowMapper.map(it)) }
|
||||
}
|
||||
|
@ -40,7 +40,7 @@ class ExposedAnnounceQueryService(
|
|||
val repost = postRepository.findById(repostId)?.url ?: return null
|
||||
|
||||
val (to, cc) = visibility(
|
||||
Visibility.values().first { visibility -> visibility.ordinal == this[Posts.visibility] },
|
||||
Visibility.entries.first { visibility -> visibility.ordinal == this[Posts.visibility] },
|
||||
this[Actors.followers]
|
||||
)
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ import dev.usbharu.hideout.core.domain.model.post.Visibility
|
|||
import dev.usbharu.hideout.core.infrastructure.exposedrepository.*
|
||||
import org.jetbrains.exposed.sql.Query
|
||||
import org.jetbrains.exposed.sql.ResultRow
|
||||
import org.jetbrains.exposed.sql.select
|
||||
import org.jetbrains.exposed.sql.selectAll
|
||||
import org.slf4j.LoggerFactory
|
||||
import org.springframework.stereotype.Repository
|
||||
import java.time.Instant
|
||||
|
@ -24,12 +24,12 @@ class NoteQueryServiceImpl(private val postRepository: PostRepository, private v
|
|||
.leftJoin(Actors)
|
||||
.leftJoin(PostsMedia)
|
||||
.leftJoin(Media)
|
||||
.select { Posts.id eq id }
|
||||
.selectAll().where { Posts.id eq id }
|
||||
.let {
|
||||
(it.toNote() ?: return null) to (
|
||||
postQueryMapper.map(it)
|
||||
.singleOrNull() ?: return null
|
||||
)
|
||||
postQueryMapper.map(it)
|
||||
.singleOrNull() ?: return null
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -38,12 +38,12 @@ class NoteQueryServiceImpl(private val postRepository: PostRepository, private v
|
|||
.leftJoin(Actors)
|
||||
.leftJoin(PostsMedia)
|
||||
.leftJoin(Media)
|
||||
.select { Posts.apId eq apId }
|
||||
.selectAll().where { Posts.apId eq apId }
|
||||
.let {
|
||||
(it.toNote() ?: return null) to (
|
||||
postQueryMapper.map(it)
|
||||
.singleOrNull() ?: return null
|
||||
)
|
||||
postQueryMapper.map(it)
|
||||
.singleOrNull() ?: return null
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -21,9 +21,8 @@ class ExposedNotificationRepository(private val idGenerateService: IdGenerateSer
|
|||
override suspend fun generateId(): Long = idGenerateService.generateId()
|
||||
|
||||
override suspend fun save(notification: Notification): Notification = query {
|
||||
val singleOrNull = Notifications.select {
|
||||
Notifications.id eq notification.id
|
||||
}.forUpdate().singleOrNull()
|
||||
val singleOrNull =
|
||||
Notifications.selectAll().where { Notifications.id eq notification.id }.forUpdate().singleOrNull()
|
||||
if (singleOrNull == null) {
|
||||
Notifications.insert {
|
||||
it[id] = notification.id
|
||||
|
@ -50,7 +49,7 @@ class ExposedNotificationRepository(private val idGenerateService: IdGenerateSer
|
|||
}
|
||||
|
||||
override suspend fun findById(id: Long): Notification? = query {
|
||||
Notifications.select { Notifications.id eq id }.singleOrNull()?.toNotifications()
|
||||
Notifications.selectAll().where { Notifications.id eq id }.singleOrNull()?.toNotifications()
|
||||
}
|
||||
|
||||
override suspend fun deleteById(id: Long) {
|
||||
|
|
|
@ -18,7 +18,7 @@ class RelationshipRepositoryImpl : RelationshipRepository, AbstractRepository()
|
|||
get() = Companion.logger
|
||||
|
||||
override suspend fun save(relationship: Relationship): Relationship = query {
|
||||
val singleOrNull = Relationships.select {
|
||||
val singleOrNull = Relationships.selectAll().where {
|
||||
(Relationships.actorId eq relationship.actorId).and(
|
||||
Relationships.targetActorId eq relationship.targetActorId
|
||||
)
|
||||
|
@ -52,16 +52,16 @@ class RelationshipRepositoryImpl : RelationshipRepository, AbstractRepository()
|
|||
|
||||
override suspend fun delete(relationship: Relationship): Unit = query {
|
||||
Relationships.deleteWhere {
|
||||
(Relationships.actorId eq relationship.actorId).and(
|
||||
Relationships.targetActorId eq relationship.targetActorId
|
||||
(actorId eq relationship.actorId).and(
|
||||
targetActorId eq relationship.targetActorId
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun findByUserIdAndTargetUserId(actorId: Long, targetActorId: Long): Relationship? = query {
|
||||
return@query Relationships.select {
|
||||
(Relationships.actorId eq actorId).and(Relationships.targetActorId eq targetActorId)
|
||||
}.singleOrNull()?.toRelationships()
|
||||
return@query Relationships.selectAll()
|
||||
.where { (Relationships.actorId eq actorId).and(Relationships.targetActorId eq targetActorId) }
|
||||
.singleOrNull()?.toRelationships()
|
||||
}
|
||||
|
||||
override suspend fun deleteByActorIdOrTargetActorId(actorId: Long, targetActorId: Long): Unit = query {
|
||||
|
@ -72,7 +72,7 @@ class RelationshipRepositoryImpl : RelationshipRepository, AbstractRepository()
|
|||
|
||||
override suspend fun findByTargetIdAndFollowing(targetId: Long, following: Boolean): List<Relationship> = query {
|
||||
return@query Relationships
|
||||
.select { Relationships.targetActorId eq targetId and (Relationships.following eq following) }
|
||||
.selectAll().where { Relationships.targetActorId eq targetId and (Relationships.following eq following) }
|
||||
.map { it.toRelationships() }
|
||||
}
|
||||
|
||||
|
@ -82,7 +82,7 @@ class RelationshipRepositoryImpl : RelationshipRepository, AbstractRepository()
|
|||
ignoreFollowRequest: Boolean,
|
||||
page: Page.PageByMaxId
|
||||
): PaginationList<Relationship, Long> = query {
|
||||
val query = Relationships.select {
|
||||
val query = Relationships.selectAll().where {
|
||||
Relationships.targetActorId.eq(targetId).and(Relationships.followRequest.eq(followRequest))
|
||||
.and(Relationships.ignoreFollowRequestFromTarget.eq(ignoreFollowRequest))
|
||||
}
|
||||
|
@ -101,9 +101,8 @@ class RelationshipRepositoryImpl : RelationshipRepository, AbstractRepository()
|
|||
muting: Boolean,
|
||||
page: Page.PageByMaxId
|
||||
): PaginationList<Relationship, Long> = query {
|
||||
val query = Relationships.select {
|
||||
Relationships.actorId.eq(actorId).and(Relationships.muting.eq(muting))
|
||||
}
|
||||
val query =
|
||||
Relationships.selectAll().where { Relationships.actorId.eq(actorId).and(Relationships.muting.eq(muting)) }
|
||||
|
||||
val resultRowList = query.withPagination(page, Relationships.id)
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ class ActorRepositoryImpl(
|
|||
get() = Companion.logger
|
||||
|
||||
override suspend fun save(actor: Actor): Actor = query {
|
||||
val singleOrNull = Actors.select { Actors.id eq actor.id }.forUpdate().empty()
|
||||
val singleOrNull = Actors.selectAll().where { Actors.id eq actor.id }.forUpdate().empty()
|
||||
if (singleOrNull) {
|
||||
Actors.insert {
|
||||
it[id] = actor.id
|
||||
|
@ -75,11 +75,12 @@ class ActorRepositoryImpl(
|
|||
}
|
||||
|
||||
override suspend fun findById(id: Long): Actor? = query {
|
||||
return@query Actors.select { Actors.id eq id }.singleOrNull()?.let(actorResultRowMapper::map)
|
||||
return@query Actors.selectAll().where { Actors.id eq id }.singleOrNull()?.let(actorResultRowMapper::map)
|
||||
}
|
||||
|
||||
override suspend fun findByIdWithLock(id: Long): Actor? = query {
|
||||
return@query Actors.select { Actors.id eq id }.forUpdate().singleOrNull()?.let(actorResultRowMapper::map)
|
||||
return@query Actors.selectAll().where { Actors.id eq id }.forUpdate().singleOrNull()
|
||||
?.let(actorResultRowMapper::map)
|
||||
}
|
||||
|
||||
override suspend fun findAll(limit: Int, offset: Long): List<Actor> = query {
|
||||
|
@ -87,33 +88,35 @@ class ActorRepositoryImpl(
|
|||
}
|
||||
|
||||
override suspend fun findByName(name: String): List<Actor> = query {
|
||||
return@query Actors.select { Actors.name eq name }.let(actorQueryMapper::map)
|
||||
return@query Actors.selectAll().where { Actors.name eq name }.let(actorQueryMapper::map)
|
||||
}
|
||||
|
||||
override suspend fun findByNameAndDomain(name: String, domain: String): Actor? = query {
|
||||
return@query Actors.select { Actors.name eq name and (Actors.domain eq domain) }.singleOrNull()
|
||||
return@query Actors.selectAll().where { Actors.name eq name and (Actors.domain eq domain) }.singleOrNull()
|
||||
?.let(actorResultRowMapper::map)
|
||||
}
|
||||
|
||||
override suspend fun findByNameAndDomainWithLock(name: String, domain: String): Actor? = query {
|
||||
return@query Actors.select { Actors.name eq name and (Actors.domain eq domain) }.forUpdate().singleOrNull()
|
||||
return@query Actors.selectAll().where { Actors.name eq name and (Actors.domain eq domain) }.forUpdate()
|
||||
.singleOrNull()
|
||||
?.let(actorResultRowMapper::map)
|
||||
}
|
||||
|
||||
override suspend fun findByUrl(url: String): Actor? = query {
|
||||
return@query Actors.select { Actors.url eq url }.singleOrNull()?.let(actorResultRowMapper::map)
|
||||
return@query Actors.selectAll().where { Actors.url eq url }.singleOrNull()?.let(actorResultRowMapper::map)
|
||||
}
|
||||
|
||||
override suspend fun findByUrlWithLock(url: String): Actor? = query {
|
||||
return@query Actors.select { Actors.url eq url }.forUpdate().singleOrNull()?.let(actorResultRowMapper::map)
|
||||
return@query Actors.selectAll().where { Actors.url eq url }.forUpdate().singleOrNull()
|
||||
?.let(actorResultRowMapper::map)
|
||||
}
|
||||
|
||||
override suspend fun findByIds(ids: List<Long>): List<Actor> = query {
|
||||
return@query Actors.select { Actors.id inList ids }.let(actorQueryMapper::map)
|
||||
return@query Actors.selectAll().where { Actors.id inList ids }.let(actorQueryMapper::map)
|
||||
}
|
||||
|
||||
override suspend fun findByKeyId(keyId: String): Actor? = query {
|
||||
return@query Actors.select { Actors.keyId eq keyId }.singleOrNull()?.let(actorResultRowMapper::map)
|
||||
return@query Actors.selectAll().where { Actors.keyId eq keyId }.singleOrNull()?.let(actorResultRowMapper::map)
|
||||
}
|
||||
|
||||
override suspend fun delete(id: Long): Unit = query {
|
||||
|
|
|
@ -20,41 +20,42 @@ class CustomEmojiRepositoryImpl(private val idGenerateService: IdGenerateService
|
|||
override suspend fun generateId(): Long = idGenerateService.generateId()
|
||||
|
||||
override suspend fun save(customEmoji: CustomEmoji): CustomEmoji = query {
|
||||
val singleOrNull = CustomEmojis.select { CustomEmojis.id eq customEmoji.id }.forUpdate().singleOrNull()
|
||||
val singleOrNull =
|
||||
CustomEmojis.selectAll().where { CustomEmojis.id eq customEmoji.id }.forUpdate().singleOrNull()
|
||||
if (singleOrNull == null) {
|
||||
CustomEmojis.insert {
|
||||
it[CustomEmojis.id] = customEmoji.id
|
||||
it[CustomEmojis.name] = customEmoji.name
|
||||
it[CustomEmojis.domain] = customEmoji.domain
|
||||
it[CustomEmojis.instanceId] = customEmoji.instanceId
|
||||
it[CustomEmojis.url] = customEmoji.url
|
||||
it[CustomEmojis.category] = customEmoji.category
|
||||
it[CustomEmojis.createdAt] = customEmoji.createdAt
|
||||
it[id] = customEmoji.id
|
||||
it[name] = customEmoji.name
|
||||
it[domain] = customEmoji.domain
|
||||
it[instanceId] = customEmoji.instanceId
|
||||
it[url] = customEmoji.url
|
||||
it[category] = customEmoji.category
|
||||
it[createdAt] = customEmoji.createdAt
|
||||
}
|
||||
} else {
|
||||
CustomEmojis.update({ CustomEmojis.id eq customEmoji.id }) {
|
||||
it[CustomEmojis.name] = customEmoji.name
|
||||
it[CustomEmojis.domain] = customEmoji.domain
|
||||
it[CustomEmojis.instanceId] = customEmoji.instanceId
|
||||
it[CustomEmojis.url] = customEmoji.url
|
||||
it[CustomEmojis.category] = customEmoji.category
|
||||
it[CustomEmojis.createdAt] = customEmoji.createdAt
|
||||
it[name] = customEmoji.name
|
||||
it[domain] = customEmoji.domain
|
||||
it[instanceId] = customEmoji.instanceId
|
||||
it[url] = customEmoji.url
|
||||
it[category] = customEmoji.category
|
||||
it[createdAt] = customEmoji.createdAt
|
||||
}
|
||||
}
|
||||
return@query customEmoji
|
||||
}
|
||||
|
||||
override suspend fun findById(id: Long): CustomEmoji? = query {
|
||||
return@query CustomEmojis.select { CustomEmojis.id eq id }.singleOrNull()?.toCustomEmoji()
|
||||
return@query CustomEmojis.selectAll().where { CustomEmojis.id eq id }.singleOrNull()?.toCustomEmoji()
|
||||
}
|
||||
|
||||
override suspend fun delete(customEmoji: CustomEmoji): Unit = query {
|
||||
CustomEmojis.deleteWhere { CustomEmojis.id eq customEmoji.id }
|
||||
CustomEmojis.deleteWhere { id eq customEmoji.id }
|
||||
}
|
||||
|
||||
override suspend fun findByNameAndDomain(name: String, domain: String): CustomEmoji? = query {
|
||||
return@query CustomEmojis
|
||||
.select { CustomEmojis.name eq name and (CustomEmojis.domain eq domain) }
|
||||
.selectAll().where { CustomEmojis.name eq name and (CustomEmojis.domain eq domain) }
|
||||
.singleOrNull()
|
||||
?.toCustomEmoji()
|
||||
}
|
||||
|
|
|
@ -15,41 +15,42 @@ class DeletedActorRepositoryImpl : DeletedActorRepository, AbstractRepository()
|
|||
get() = Companion.logger
|
||||
|
||||
override suspend fun save(deletedActor: DeletedActor): DeletedActor = query {
|
||||
val singleOrNull = DeletedActors.select { DeletedActors.id eq deletedActor.id }.forUpdate().singleOrNull()
|
||||
val singleOrNull =
|
||||
DeletedActors.selectAll().where { DeletedActors.id eq deletedActor.id }.forUpdate().singleOrNull()
|
||||
|
||||
if (singleOrNull == null) {
|
||||
DeletedActors.insert {
|
||||
it[DeletedActors.id] = deletedActor.id
|
||||
it[DeletedActors.name] = deletedActor.name
|
||||
it[DeletedActors.domain] = deletedActor.domain
|
||||
it[DeletedActors.publicKey] = deletedActor.publicKey
|
||||
it[DeletedActors.deletedAt] = deletedActor.deletedAt
|
||||
it[id] = deletedActor.id
|
||||
it[name] = deletedActor.name
|
||||
it[domain] = deletedActor.domain
|
||||
it[publicKey] = deletedActor.publicKey
|
||||
it[deletedAt] = deletedActor.deletedAt
|
||||
}
|
||||
} else {
|
||||
DeletedActors.update({ DeletedActors.id eq deletedActor.id }) {
|
||||
it[DeletedActors.name] = deletedActor.name
|
||||
it[DeletedActors.domain] = deletedActor.domain
|
||||
it[DeletedActors.publicKey] = deletedActor.publicKey
|
||||
it[DeletedActors.deletedAt] = deletedActor.deletedAt
|
||||
it[name] = deletedActor.name
|
||||
it[domain] = deletedActor.domain
|
||||
it[publicKey] = deletedActor.publicKey
|
||||
it[deletedAt] = deletedActor.deletedAt
|
||||
}
|
||||
}
|
||||
return@query deletedActor
|
||||
}
|
||||
|
||||
override suspend fun delete(deletedActor: DeletedActor): Unit = query {
|
||||
DeletedActors.deleteWhere { DeletedActors.id eq deletedActor.id }
|
||||
DeletedActors.deleteWhere { id eq deletedActor.id }
|
||||
}
|
||||
|
||||
override suspend fun findById(id: Long): DeletedActor? = query {
|
||||
return@query DeletedActors
|
||||
.select { DeletedActors.id eq id }
|
||||
.selectAll().where { DeletedActors.id eq id }
|
||||
.singleOrNull()
|
||||
?.toDeletedActor()
|
||||
}
|
||||
|
||||
override suspend fun findByNameAndDomain(name: String, domain: String): DeletedActor? = query {
|
||||
return@query DeletedActors
|
||||
.select { DeletedActors.name eq name and (DeletedActors.domain eq domain) }
|
||||
.selectAll().where { DeletedActors.name eq name and (DeletedActors.domain eq domain) }
|
||||
.singleOrNull()
|
||||
?.toDeletedActor()
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@ class ExposedTimelineRepository(private val idGenerateService: IdGenerateService
|
|||
override suspend fun generateId(): Long = idGenerateService.generateId()
|
||||
|
||||
override suspend fun save(timeline: Timeline): Timeline = query {
|
||||
if (Timelines.select { Timelines.id eq timeline.id }.forUpdate().singleOrNull() == null) {
|
||||
if (Timelines.selectAll().where { Timelines.id eq timeline.id }.forUpdate().singleOrNull() == null) {
|
||||
Timelines.insert {
|
||||
it[id] = timeline.id
|
||||
it[userId] = timeline.userId
|
||||
|
@ -80,11 +80,11 @@ class ExposedTimelineRepository(private val idGenerateService: IdGenerateService
|
|||
}
|
||||
|
||||
override suspend fun findByUserId(id: Long): List<Timeline> = query {
|
||||
return@query Timelines.select { Timelines.userId eq id }.map { it.toTimeline() }
|
||||
return@query Timelines.selectAll().where { Timelines.userId eq id }.map { it.toTimeline() }
|
||||
}
|
||||
|
||||
override suspend fun findByUserIdAndTimelineId(userId: Long, timelineId: Long): List<Timeline> = query {
|
||||
return@query Timelines.select { Timelines.userId eq userId and (Timelines.timelineId eq timelineId) }
|
||||
return@query Timelines.selectAll().where { Timelines.userId eq userId and (Timelines.timelineId eq timelineId) }
|
||||
.map { it.toTimeline() }
|
||||
}
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ class InstanceRepositoryImpl(private val idGenerateService: IdGenerateService) :
|
|||
override suspend fun generateId(): Long = idGenerateService.generateId()
|
||||
|
||||
override suspend fun save(instance: InstanceEntity): InstanceEntity = query {
|
||||
if (Instance.select { Instance.id.eq(instance.id) }.forUpdate().empty()) {
|
||||
if (Instance.selectAll().where { Instance.id.eq(instance.id) }.forUpdate().empty()) {
|
||||
Instance.insert {
|
||||
it[id] = instance.id
|
||||
it[name] = instance.name
|
||||
|
@ -53,7 +53,7 @@ class InstanceRepositoryImpl(private val idGenerateService: IdGenerateService) :
|
|||
}
|
||||
|
||||
override suspend fun findById(id: Long): InstanceEntity? = query {
|
||||
return@query Instance.select { Instance.id eq id }
|
||||
return@query Instance.selectAll().where { Instance.id eq id }
|
||||
.singleOrNull()?.toInstance()
|
||||
}
|
||||
|
||||
|
@ -62,7 +62,7 @@ class InstanceRepositoryImpl(private val idGenerateService: IdGenerateService) :
|
|||
}
|
||||
|
||||
override suspend fun findByUrl(url: String): dev.usbharu.hideout.core.domain.model.instance.Instance? = query {
|
||||
return@query Instance.select { Instance.url eq url }.singleOrNull()?.toInstance()
|
||||
return@query Instance.selectAll().where { Instance.url eq url }.singleOrNull()?.toInstance()
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
|
|
@ -20,9 +20,7 @@ class MediaRepositoryImpl(private val idGenerateService: IdGenerateService) : Me
|
|||
override suspend fun generateId(): Long = idGenerateService.generateId()
|
||||
|
||||
override suspend fun save(media: EntityMedia): EntityMedia = query {
|
||||
if (Media.select {
|
||||
Media.id eq media.id
|
||||
}.forUpdate().singleOrNull() != null
|
||||
if (Media.selectAll().where { Media.id eq media.id }.forUpdate().singleOrNull() != null
|
||||
) {
|
||||
Media.update({ Media.id eq media.id }) {
|
||||
it[name] = media.name
|
||||
|
@ -52,9 +50,7 @@ class MediaRepositoryImpl(private val idGenerateService: IdGenerateService) : Me
|
|||
|
||||
override suspend fun findById(id: Long): EntityMedia? = query {
|
||||
return@query Media
|
||||
.select {
|
||||
Media.id eq id
|
||||
}
|
||||
.selectAll().where { Media.id eq id }
|
||||
.singleOrNull()
|
||||
?.toMedia()
|
||||
}
|
||||
|
@ -67,7 +63,7 @@ class MediaRepositoryImpl(private val idGenerateService: IdGenerateService) : Me
|
|||
|
||||
override suspend fun findByRemoteUrl(remoteUrl: String): dev.usbharu.hideout.core.domain.model.media.Media? =
|
||||
query {
|
||||
return@query Media.select { Media.remoteUrl eq remoteUrl }.singleOrNull()?.toMedia()
|
||||
return@query Media.selectAll().where { Media.remoteUrl eq remoteUrl }.singleOrNull()?.toMedia()
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
|
|
@ -10,7 +10,7 @@ import java.util.*
|
|||
class MetaRepositoryImpl : MetaRepository {
|
||||
|
||||
override suspend fun save(meta: dev.usbharu.hideout.core.domain.model.meta.Meta) {
|
||||
if (Meta.select { Meta.id eq 1 }.empty()) {
|
||||
if (Meta.selectAll().where { Meta.id eq 1 }.empty()) {
|
||||
Meta.insert {
|
||||
it[id] = 1
|
||||
it[version] = meta.version
|
||||
|
@ -29,7 +29,7 @@ class MetaRepositoryImpl : MetaRepository {
|
|||
}
|
||||
|
||||
override suspend fun get(): dev.usbharu.hideout.core.domain.model.meta.Meta? {
|
||||
return Meta.select { Meta.id eq 1 }.singleOrNull()?.let {
|
||||
return Meta.selectAll().where { Meta.id eq 1 }.singleOrNull()?.let {
|
||||
dev.usbharu.hideout.core.domain.model.meta.Meta(
|
||||
it[Meta.version],
|
||||
Jwt(UUID.fromString(it[Meta.kid]), it[Meta.jwtPrivateKey], it[Meta.jwtPublicKey])
|
||||
|
|
|
@ -21,7 +21,7 @@ class PostRepositoryImpl(
|
|||
override suspend fun generateId(): Long = idGenerateService.generateId()
|
||||
|
||||
override suspend fun save(post: Post): Post = query {
|
||||
val singleOrNull = Posts.select { Posts.id eq post.id }.forUpdate().singleOrNull()
|
||||
val singleOrNull = Posts.selectAll().where { Posts.id eq post.id }.forUpdate().singleOrNull()
|
||||
if (singleOrNull == null) {
|
||||
Posts.insert {
|
||||
it[id] = post.id
|
||||
|
@ -83,7 +83,7 @@ class PostRepositoryImpl(
|
|||
return@query Posts
|
||||
.leftJoin(PostsMedia)
|
||||
.leftJoin(PostsEmojis)
|
||||
.select { Posts.id eq id }
|
||||
.selectAll().where { Posts.id eq id }
|
||||
.let(postQueryMapper::map)
|
||||
.singleOrNull()
|
||||
}
|
||||
|
@ -92,7 +92,7 @@ class PostRepositoryImpl(
|
|||
return@query Posts
|
||||
.leftJoin(PostsMedia)
|
||||
.leftJoin(PostsEmojis)
|
||||
.select { Posts.url eq url }
|
||||
.selectAll().where { Posts.url eq url }
|
||||
.let(postQueryMapper::map)
|
||||
.singleOrNull()
|
||||
}
|
||||
|
@ -101,20 +101,20 @@ class PostRepositoryImpl(
|
|||
return@query Posts
|
||||
.leftJoin(PostsMedia)
|
||||
.leftJoin(PostsEmojis)
|
||||
.select { Posts.apId eq apId }
|
||||
.selectAll().where { Posts.apId eq apId }
|
||||
.let(postQueryMapper::map)
|
||||
.singleOrNull()
|
||||
}
|
||||
|
||||
override suspend fun existByApIdWithLock(apId: String): Boolean = query {
|
||||
return@query Posts.select { Posts.apId eq apId }.forUpdate().empty().not()
|
||||
return@query Posts.selectAll().where { Posts.apId eq apId }.forUpdate().empty().not()
|
||||
}
|
||||
|
||||
override suspend fun findByActorId(actorId: Long): List<Post> = query {
|
||||
return@query Posts
|
||||
.leftJoin(PostsMedia)
|
||||
.leftJoin(PostsEmojis)
|
||||
.select { Posts.actorId eq actorId }.let(postQueryMapper::map)
|
||||
.selectAll().where { Posts.actorId eq actorId }.let(postQueryMapper::map)
|
||||
}
|
||||
|
||||
override suspend fun delete(id: Long): Unit = query {
|
||||
|
|
|
@ -23,7 +23,7 @@ class ReactionRepositoryImpl(
|
|||
override suspend fun generateId(): Long = idGenerateService.generateId()
|
||||
|
||||
override suspend fun save(reaction: Reaction): Reaction = query {
|
||||
if (Reactions.select { Reactions.id eq reaction.id }.forUpdate().empty()) {
|
||||
if (Reactions.selectAll().where { Reactions.id eq reaction.id }.forUpdate().empty()) {
|
||||
Reactions.insert {
|
||||
it[id] = reaction.id
|
||||
if (reaction.emoji is CustomEmoji) {
|
||||
|
@ -90,30 +90,32 @@ class ReactionRepositoryImpl(
|
|||
Reactions.deleteWhere {
|
||||
Reactions.postId.eq(postId)
|
||||
.and(Reactions.actorId.eq(actorId))
|
||||
.and(Reactions.customEmojiId.eq(emoji.id))
|
||||
.and(customEmojiId.eq(emoji.id))
|
||||
}
|
||||
} else {
|
||||
Reactions.deleteWhere {
|
||||
Reactions.postId.eq(postId)
|
||||
.and(Reactions.actorId.eq(actorId))
|
||||
.and(Reactions.unicodeEmoji.eq(emoji.name))
|
||||
.and(unicodeEmoji.eq(emoji.name))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun findById(id: Long): Reaction? = query {
|
||||
return@query Reactions.leftJoin(CustomEmojis).select { Reactions.id eq id }.singleOrNull()?.toReaction()
|
||||
return@query Reactions.leftJoin(CustomEmojis).selectAll().where { Reactions.id eq id }.singleOrNull()
|
||||
?.toReaction()
|
||||
}
|
||||
|
||||
override suspend fun findByPostId(postId: Long): List<Reaction> = query {
|
||||
return@query Reactions.leftJoin(CustomEmojis).select { Reactions.postId eq postId }.map { it.toReaction() }
|
||||
return@query Reactions.leftJoin(CustomEmojis).selectAll().where { Reactions.postId eq postId }
|
||||
.map { it.toReaction() }
|
||||
}
|
||||
|
||||
override suspend fun findByPostIdAndActorIdAndEmojiId(postId: Long, actorId: Long, emojiId: Long): Reaction? =
|
||||
query {
|
||||
return@query Reactions.leftJoin(CustomEmojis).select {
|
||||
return@query Reactions.leftJoin(CustomEmojis).selectAll().where {
|
||||
Reactions.postId eq postId and (Reactions.actorId eq actorId).and(
|
||||
Reactions.customEmojiId.eq(
|
||||
Reactions.customEmojiId.eq<Long?>(
|
||||
emojiId
|
||||
)
|
||||
)
|
||||
|
@ -122,11 +124,11 @@ class ReactionRepositoryImpl(
|
|||
|
||||
override suspend fun existByPostIdAndActorIdAndEmojiId(postId: Long, actorId: Long, emojiId: Long): Boolean =
|
||||
query {
|
||||
return@query Reactions.select {
|
||||
return@query Reactions.selectAll().where {
|
||||
Reactions.postId
|
||||
.eq(postId)
|
||||
.and(Reactions.actorId.eq(actorId))
|
||||
.and(Reactions.customEmojiId.eq(emojiId))
|
||||
.eq<Long>(postId)
|
||||
.and(Reactions.actorId.eq<Long>(actorId))
|
||||
.and(Reactions.customEmojiId.eq<Long?>(emojiId))
|
||||
}.empty().not()
|
||||
}
|
||||
|
||||
|
@ -135,16 +137,16 @@ class ReactionRepositoryImpl(
|
|||
actorId: Long,
|
||||
unicodeEmoji: String
|
||||
): Boolean = query {
|
||||
return@query Reactions.select {
|
||||
return@query Reactions.selectAll().where {
|
||||
Reactions.postId
|
||||
.eq(postId)
|
||||
.and(Reactions.actorId.eq(actorId))
|
||||
.and(Reactions.unicodeEmoji.eq(unicodeEmoji))
|
||||
.eq<Long>(postId)
|
||||
.and(Reactions.actorId.eq<Long>(actorId))
|
||||
.and(Reactions.unicodeEmoji.eq<String?>(unicodeEmoji))
|
||||
}.empty().not()
|
||||
}
|
||||
|
||||
override suspend fun existByPostIdAndActorIdAndEmoji(postId: Long, actorId: Long, emoji: Emoji): Boolean = query {
|
||||
val query = Reactions.select {
|
||||
val query = Reactions.selectAll().where {
|
||||
Reactions.postId
|
||||
.eq(postId)
|
||||
.and(Reactions.actorId.eq(actorId))
|
||||
|
@ -161,14 +163,12 @@ class ReactionRepositoryImpl(
|
|||
}
|
||||
|
||||
override suspend fun existByPostIdAndActor(postId: Long, actorId: Long): Boolean = query {
|
||||
Reactions.select {
|
||||
Reactions.postId.eq(postId).and(Reactions.actorId.eq(actorId))
|
||||
}.empty().not()
|
||||
Reactions.selectAll().where { Reactions.postId.eq(postId).and(Reactions.actorId.eq(actorId)) }.empty().not()
|
||||
}
|
||||
|
||||
override suspend fun findByPostIdAndActorId(postId: Long, actorId: Long): List<Reaction> = query {
|
||||
return@query Reactions.leftJoin(CustomEmojis)
|
||||
.select { Reactions.postId eq postId and (Reactions.actorId eq actorId) }
|
||||
.selectAll().where { Reactions.postId eq postId and (Reactions.actorId eq actorId) }
|
||||
.map { it.toReaction() }
|
||||
}
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ import org.jetbrains.exposed.dao.id.LongIdTable
|
|||
import org.jetbrains.exposed.sql.SqlExpressionBuilder.eq
|
||||
import org.jetbrains.exposed.sql.deleteWhere
|
||||
import org.jetbrains.exposed.sql.insert
|
||||
import org.jetbrains.exposed.sql.select
|
||||
import org.jetbrains.exposed.sql.selectAll
|
||||
import org.jetbrains.exposed.sql.update
|
||||
import org.slf4j.Logger
|
||||
import org.slf4j.LoggerFactory
|
||||
|
@ -18,7 +18,8 @@ class UserDetailRepositoryImpl : UserDetailRepository, AbstractRepository() {
|
|||
get() = Companion.logger
|
||||
|
||||
override suspend fun save(userDetail: UserDetail): UserDetail = query {
|
||||
val singleOrNull = UserDetails.select { UserDetails.actorId eq userDetail.actorId }.forUpdate().singleOrNull()
|
||||
val singleOrNull =
|
||||
UserDetails.selectAll().where { UserDetails.actorId eq userDetail.actorId }.forUpdate().singleOrNull()
|
||||
if (singleOrNull == null) {
|
||||
UserDetails.insert {
|
||||
it[actorId] = userDetail.actorId
|
||||
|
@ -35,12 +36,12 @@ class UserDetailRepositoryImpl : UserDetailRepository, AbstractRepository() {
|
|||
}
|
||||
|
||||
override suspend fun delete(userDetail: UserDetail): Unit = query {
|
||||
UserDetails.deleteWhere { UserDetails.actorId eq userDetail.actorId }
|
||||
UserDetails.deleteWhere { actorId eq userDetail.actorId }
|
||||
}
|
||||
|
||||
override suspend fun findByActorId(actorId: Long): UserDetail? = query {
|
||||
return@query UserDetails
|
||||
.select { UserDetails.actorId eq actorId }
|
||||
.selectAll().where { UserDetails.actorId eq actorId }
|
||||
.singleOrNull()
|
||||
?.let {
|
||||
UserDetail(
|
||||
|
|
|
@ -21,7 +21,7 @@ class ExposedOAuth2AuthorizationConsentService(
|
|||
requireNotNull(authorizationConsent)
|
||||
transaction.transaction {
|
||||
val singleOrNull =
|
||||
OAuth2AuthorizationConsent.select {
|
||||
OAuth2AuthorizationConsent.selectAll().where {
|
||||
OAuth2AuthorizationConsent.registeredClientId
|
||||
.eq(authorizationConsent.registeredClientId)
|
||||
.and(OAuth2AuthorizationConsent.principalName.eq(authorizationConsent.principalName))
|
||||
|
@ -50,7 +50,7 @@ class ExposedOAuth2AuthorizationConsentService(
|
|||
requireNotNull(registeredClientId)
|
||||
requireNotNull(principalName)
|
||||
transaction.transaction {
|
||||
OAuth2AuthorizationConsent.select {
|
||||
OAuth2AuthorizationConsent.selectAll().where {
|
||||
(OAuth2AuthorizationConsent.registeredClientId eq registeredClientId)
|
||||
.and(OAuth2AuthorizationConsent.principalName eq principalName)
|
||||
}
|
||||
|
|
|
@ -34,7 +34,7 @@ class ExposedOAuth2AuthorizationService(
|
|||
override fun save(authorization: OAuth2Authorization?): Unit = runBlocking {
|
||||
requireNotNull(authorization)
|
||||
transaction.transaction {
|
||||
val singleOrNull = Authorization.select { Authorization.id eq authorization.id }.singleOrNull()
|
||||
val singleOrNull = Authorization.selectAll().where { Authorization.id eq authorization.id }.singleOrNull()
|
||||
if (singleOrNull == null) {
|
||||
val authorizationCodeToken = authorization.getToken(OAuth2AuthorizationCode::class.java)
|
||||
val accessToken = authorization.getToken(OAuth2AccessToken::class.java)
|
||||
|
@ -139,7 +139,7 @@ class ExposedOAuth2AuthorizationService(
|
|||
if (id == null) {
|
||||
return null
|
||||
}
|
||||
return Authorization.select { Authorization.id eq id }.singleOrNull()?.toAuthorization()
|
||||
return Authorization.selectAll().where { Authorization.id eq id }.singleOrNull()?.toAuthorization()
|
||||
}
|
||||
|
||||
override fun findByToken(token: String?, tokenType: OAuth2TokenType?): OAuth2Authorization? = runBlocking {
|
||||
|
@ -147,9 +147,7 @@ class ExposedOAuth2AuthorizationService(
|
|||
transaction.transaction {
|
||||
when (tokenType?.value) {
|
||||
null -> {
|
||||
Authorization.select {
|
||||
Authorization.authorizationCodeValue eq token
|
||||
}.orWhere {
|
||||
Authorization.selectAll().where { Authorization.authorizationCodeValue eq token }.orWhere {
|
||||
Authorization.accessTokenValue eq token
|
||||
}.orWhere {
|
||||
Authorization.oidcIdTokenValue eq token
|
||||
|
@ -163,31 +161,31 @@ class ExposedOAuth2AuthorizationService(
|
|||
}
|
||||
|
||||
OAuth2ParameterNames.STATE -> {
|
||||
Authorization.select { Authorization.state eq token }
|
||||
Authorization.selectAll().where { Authorization.state eq token }
|
||||
}
|
||||
|
||||
OAuth2ParameterNames.CODE -> {
|
||||
Authorization.select { Authorization.authorizationCodeValue eq token }
|
||||
Authorization.selectAll().where { Authorization.authorizationCodeValue eq token }
|
||||
}
|
||||
|
||||
OAuth2ParameterNames.ACCESS_TOKEN -> {
|
||||
Authorization.select { Authorization.accessTokenValue eq token }
|
||||
Authorization.selectAll().where { Authorization.accessTokenValue eq token }
|
||||
}
|
||||
|
||||
OidcParameterNames.ID_TOKEN -> {
|
||||
Authorization.select { Authorization.oidcIdTokenValue eq token }
|
||||
Authorization.selectAll().where { Authorization.oidcIdTokenValue eq token }
|
||||
}
|
||||
|
||||
OAuth2ParameterNames.REFRESH_TOKEN -> {
|
||||
Authorization.select { Authorization.refreshTokenValue eq token }
|
||||
Authorization.selectAll().where { Authorization.refreshTokenValue eq token }
|
||||
}
|
||||
|
||||
OAuth2ParameterNames.USER_CODE -> {
|
||||
Authorization.select { Authorization.userCodeValue eq token }
|
||||
Authorization.selectAll().where { Authorization.userCodeValue eq token }
|
||||
}
|
||||
|
||||
OAuth2ParameterNames.DEVICE_CODE -> {
|
||||
Authorization.select { Authorization.deviceCodeValue eq token }
|
||||
Authorization.selectAll().where { Authorization.deviceCodeValue eq token }
|
||||
}
|
||||
|
||||
else -> {
|
||||
|
|
|
@ -7,6 +7,7 @@ import dev.usbharu.hideout.core.infrastructure.springframework.oauth2.Registered
|
|||
import dev.usbharu.hideout.core.infrastructure.springframework.oauth2.RegisteredClient.clientSettings
|
||||
import dev.usbharu.hideout.core.infrastructure.springframework.oauth2.RegisteredClient.tokenSettings
|
||||
import org.jetbrains.exposed.sql.*
|
||||
import org.jetbrains.exposed.sql.SqlExpressionBuilder.eq
|
||||
import org.jetbrains.exposed.sql.javatime.CurrentTimestamp
|
||||
import org.jetbrains.exposed.sql.javatime.timestamp
|
||||
import org.slf4j.Logger
|
||||
|
@ -30,7 +31,8 @@ class RegisteredClientRepositoryImpl : RegisteredClientRepository {
|
|||
|
||||
override fun save(registeredClient: SpringRegisteredClient?) {
|
||||
requireNotNull(registeredClient)
|
||||
val singleOrNull = RegisteredClient.select { RegisteredClient.id eq registeredClient.id }.singleOrNull()
|
||||
val singleOrNull =
|
||||
RegisteredClient.selectAll().where { RegisteredClient.id eq registeredClient.id }.singleOrNull()
|
||||
if (singleOrNull == null) {
|
||||
RegisteredClient.insert {
|
||||
it[id] = registeredClient.id
|
||||
|
@ -71,9 +73,7 @@ class RegisteredClientRepositoryImpl : RegisteredClientRepository {
|
|||
if (id == null) {
|
||||
return null
|
||||
}
|
||||
return RegisteredClient.select {
|
||||
RegisteredClient.id eq id
|
||||
}.singleOrNull()?.toRegisteredClient()
|
||||
return RegisteredClient.selectAll().where { RegisteredClient.id eq id }.singleOrNull()?.toRegisteredClient()
|
||||
}
|
||||
|
||||
@Transactional
|
||||
|
@ -81,9 +81,9 @@ class RegisteredClientRepositoryImpl : RegisteredClientRepository {
|
|||
if (clientId == null) {
|
||||
return null
|
||||
}
|
||||
val toRegisteredClient = RegisteredClient.select {
|
||||
RegisteredClient.clientId eq clientId
|
||||
}.singleOrNull()?.toRegisteredClient()
|
||||
val toRegisteredClient =
|
||||
RegisteredClient.selectAll().where { RegisteredClient.clientId eq clientId }.singleOrNull()
|
||||
?.toRegisteredClient()
|
||||
LOGGER.trace("findByClientId: {}", toRegisteredClient)
|
||||
return toRegisteredClient
|
||||
}
|
||||
|
|
|
@ -5,14 +5,14 @@ import dev.usbharu.hideout.core.infrastructure.exposedrepository.Actors
|
|||
import dev.usbharu.hideout.domain.mastodon.model.generated.Account
|
||||
import dev.usbharu.hideout.mastodon.query.AccountQueryService
|
||||
import org.jetbrains.exposed.sql.ResultRow
|
||||
import org.jetbrains.exposed.sql.select
|
||||
import org.jetbrains.exposed.sql.selectAll
|
||||
import org.springframework.stereotype.Repository
|
||||
import java.time.Instant
|
||||
|
||||
@Repository
|
||||
class AccountQueryServiceImpl(private val applicationConfig: ApplicationConfig) : AccountQueryService {
|
||||
override suspend fun findById(accountId: Long): Account? {
|
||||
val query = Actors.select { Actors.id eq accountId }
|
||||
val query = Actors.selectAll().where { Actors.id eq accountId }
|
||||
|
||||
return query
|
||||
.singleOrNull()
|
||||
|
@ -20,7 +20,7 @@ class AccountQueryServiceImpl(private val applicationConfig: ApplicationConfig)
|
|||
}
|
||||
|
||||
override suspend fun findByIds(accountIds: List<Long>): List<Account> {
|
||||
val query = Actors.select { Actors.id inList accountIds }
|
||||
val query = Actors.selectAll().where { Actors.id inList accountIds }
|
||||
|
||||
return query
|
||||
.map { toAccount(it) }
|
||||
|
|
|
@ -13,7 +13,7 @@ import dev.usbharu.hideout.mastodon.interfaces.api.status.StatusQuery
|
|||
import dev.usbharu.hideout.mastodon.query.StatusQueryService
|
||||
import org.jetbrains.exposed.sql.ResultRow
|
||||
import org.jetbrains.exposed.sql.andWhere
|
||||
import org.jetbrains.exposed.sql.select
|
||||
import org.jetbrains.exposed.sql.selectAll
|
||||
import org.springframework.stereotype.Repository
|
||||
import java.time.Instant
|
||||
import dev.usbharu.hideout.domain.mastodon.model.generated.CustomEmoji as MastodonEmoji
|
||||
|
@ -34,14 +34,14 @@ class StatusQueryServiceImpl : StatusQueryService {
|
|||
|
||||
val postMap = Posts
|
||||
.leftJoin(Actors)
|
||||
.select { Posts.id inList postIdSet }
|
||||
.selectAll().where { Posts.id inList postIdSet }
|
||||
.associate { it[Posts.id] to toStatus(it) }
|
||||
val mediaMap = Media.select { Media.id inList mediaIdSet }
|
||||
val mediaMap = Media.selectAll().where { Media.id inList mediaIdSet }
|
||||
.associate {
|
||||
it[Media.id] to it.toMedia().toMediaAttachments()
|
||||
}
|
||||
|
||||
val emojiMap = CustomEmojis.select { CustomEmojis.id inList emojiIdSet }.associate {
|
||||
val emojiMap = CustomEmojis.selectAll().where { CustomEmojis.id inList emojiIdSet }.associate {
|
||||
it[CustomEmojis.id] to it.toCustomEmoji().toMastodonEmoji()
|
||||
}
|
||||
return statusQueries.mapNotNull { statusQuery ->
|
||||
|
@ -69,7 +69,7 @@ class StatusQueryServiceImpl : StatusQueryService {
|
|||
.leftJoin(PostsMedia)
|
||||
.leftJoin(Actors)
|
||||
.leftJoin(Media)
|
||||
.select { Posts.actorId eq accountId }
|
||||
.selectAll().where { Posts.actorId eq accountId }
|
||||
|
||||
if (onlyMedia) {
|
||||
query.andWhere { PostsMedia.mediaId.isNotNull() }
|
||||
|
@ -111,7 +111,7 @@ class StatusQueryServiceImpl : StatusQueryService {
|
|||
.leftJoin(PostsMedia)
|
||||
.leftJoin(Actors)
|
||||
.leftJoin(Media)
|
||||
.select { Posts.id eq id }
|
||||
.selectAll().where { Posts.id eq id }
|
||||
.groupBy { it[Posts.id] }
|
||||
.map { it.value }
|
||||
.map {
|
||||
|
@ -153,7 +153,7 @@ class StatusQueryServiceImpl : StatusQueryService {
|
|||
.leftJoin(CustomEmojis)
|
||||
.leftJoin(Actors)
|
||||
.leftJoin(Media)
|
||||
.select { Posts.id inList ids }
|
||||
.selectAll().where { Posts.id inList ids }
|
||||
.groupBy { it[Posts.id] }
|
||||
.map { it.value }
|
||||
.map {
|
||||
|
|
|
@ -25,26 +25,27 @@ class ExposedMastodonNotificationRepository : MastodonNotificationRepository, Ab
|
|||
|
||||
override suspend fun save(mastodonNotification: MastodonNotification): MastodonNotification = query {
|
||||
val singleOrNull =
|
||||
MastodonNotifications.select { MastodonNotifications.id eq mastodonNotification.id }.singleOrNull()
|
||||
MastodonNotifications.selectAll().where { MastodonNotifications.id eq mastodonNotification.id }
|
||||
.singleOrNull()
|
||||
if (singleOrNull == null) {
|
||||
MastodonNotifications.insert {
|
||||
it[MastodonNotifications.id] = mastodonNotification.id
|
||||
it[MastodonNotifications.type] = mastodonNotification.type.name
|
||||
it[MastodonNotifications.createdAt] = mastodonNotification.createdAt
|
||||
it[MastodonNotifications.accountId] = mastodonNotification.accountId
|
||||
it[MastodonNotifications.statusId] = mastodonNotification.statusId
|
||||
it[MastodonNotifications.reportId] = mastodonNotification.reportId
|
||||
it[MastodonNotifications.relationshipServeranceEventId] =
|
||||
it[id] = mastodonNotification.id
|
||||
it[type] = mastodonNotification.type.name
|
||||
it[createdAt] = mastodonNotification.createdAt
|
||||
it[accountId] = mastodonNotification.accountId
|
||||
it[statusId] = mastodonNotification.statusId
|
||||
it[reportId] = mastodonNotification.reportId
|
||||
it[relationshipServeranceEventId] =
|
||||
mastodonNotification.relationshipServeranceEvent
|
||||
}
|
||||
} else {
|
||||
MastodonNotifications.update({ MastodonNotifications.id eq mastodonNotification.id }) {
|
||||
it[MastodonNotifications.type] = mastodonNotification.type.name
|
||||
it[MastodonNotifications.createdAt] = mastodonNotification.createdAt
|
||||
it[MastodonNotifications.accountId] = mastodonNotification.accountId
|
||||
it[MastodonNotifications.statusId] = mastodonNotification.statusId
|
||||
it[MastodonNotifications.reportId] = mastodonNotification.reportId
|
||||
it[MastodonNotifications.relationshipServeranceEventId] =
|
||||
it[type] = mastodonNotification.type.name
|
||||
it[createdAt] = mastodonNotification.createdAt
|
||||
it[accountId] = mastodonNotification.accountId
|
||||
it[statusId] = mastodonNotification.statusId
|
||||
it[reportId] = mastodonNotification.reportId
|
||||
it[relationshipServeranceEventId] =
|
||||
mastodonNotification.relationshipServeranceEvent
|
||||
}
|
||||
}
|
||||
|
@ -58,7 +59,8 @@ class ExposedMastodonNotificationRepository : MastodonNotificationRepository, Ab
|
|||
}
|
||||
|
||||
override suspend fun findById(id: Long): MastodonNotification? = query {
|
||||
MastodonNotifications.select { MastodonNotifications.id eq id }.singleOrNull()?.toMastodonNotification()
|
||||
MastodonNotifications.selectAll().where { MastodonNotifications.id eq id }.singleOrNull()
|
||||
?.toMastodonNotification()
|
||||
}
|
||||
|
||||
override suspend fun findByUserIdAndInTypesAndInSourceActorId(
|
||||
|
@ -67,9 +69,7 @@ class ExposedMastodonNotificationRepository : MastodonNotificationRepository, Ab
|
|||
accountId: List<Long>,
|
||||
page: Page
|
||||
): PaginationList<MastodonNotification, Long> = query {
|
||||
val query = MastodonNotifications.select {
|
||||
MastodonNotifications.userId eq loginUser
|
||||
}
|
||||
val query = MastodonNotifications.selectAll().where { MastodonNotifications.userId eq loginUser }
|
||||
val result = query.withPagination(page, MastodonNotifications.id)
|
||||
|
||||
return@query PaginationList(result.map { it.toMastodonNotification() }, result.next, result.prev)
|
||||
|
|
|
@ -99,7 +99,7 @@ class ExposedPaginationExtensionKtTest {
|
|||
|
||||
@Test
|
||||
fun 結果が0件の場合はprevとnextがnullになる():Unit = transaction {
|
||||
val pagination = ExposePaginationTestTable.select { ExposePaginationTestTable.id.isNull() }
|
||||
val pagination = ExposePaginationTestTable.selectAll().where { ExposePaginationTestTable.id.isNull() }
|
||||
.withPagination(Page.of(), ExposePaginationTestTable.id)
|
||||
|
||||
assertThat(pagination).isEmpty()
|
||||
|
@ -111,7 +111,7 @@ class ExposedPaginationExtensionKtTest {
|
|||
val id = long("id")
|
||||
val name = varchar("name",100)
|
||||
|
||||
override val primaryKey: PrimaryKey?
|
||||
override val primaryKey: PrimaryKey
|
||||
get() = PrimaryKey(id)
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue