mirror of https://github.com/usbharu/Hideout.git
refactor: 不要な関数を削除
This commit is contained in:
parent
22bb8a910b
commit
399d7d369e
|
@ -3,8 +3,10 @@ package dev.usbharu.hideout.query
|
|||
import dev.usbharu.hideout.domain.model.hideout.entity.User
|
||||
|
||||
interface UserQueryService {
|
||||
suspend fun findAll(limit: Int, offset: Long): List<User>
|
||||
suspend fun findById(id: Long): User
|
||||
suspend fun findByName(name: String): List<User>
|
||||
suspend fun findByNameAndDomain(name: String, domain: String): User
|
||||
suspend fun findByUrl(url: String): User
|
||||
suspend fun findByIds(ids: List<Long>): List<User>
|
||||
}
|
||||
|
|
|
@ -5,19 +5,23 @@ import dev.usbharu.hideout.repository.Users
|
|||
import dev.usbharu.hideout.repository.toUser
|
||||
import org.jetbrains.exposed.sql.and
|
||||
import org.jetbrains.exposed.sql.select
|
||||
import org.jetbrains.exposed.sql.selectAll
|
||||
import org.koin.core.annotation.Single
|
||||
|
||||
@Single
|
||||
class UserQueryServiceImpl : UserQueryService {
|
||||
override suspend fun findAll(limit: Int, offset: Long): List<User> =
|
||||
Users.selectAll().limit(limit, offset).map { it.toUser() }
|
||||
|
||||
override suspend fun findById(id: Long): User = Users.select { Users.id eq id }.single().toUser()
|
||||
|
||||
override suspend fun findByName(name: String): List<User> {
|
||||
return Users.select { Users.name eq name }.map { it.toUser() }
|
||||
}
|
||||
override suspend fun findByName(name: String): List<User> = Users.select { Users.name eq name }.map { it.toUser() }
|
||||
|
||||
override suspend fun findByNameAndDomain(name: String, domain: String): User {
|
||||
return Users.select { Users.name eq name and (Users.domain eq domain) }.single().toUser()
|
||||
}
|
||||
override suspend fun findByNameAndDomain(name: String, domain: String): User =
|
||||
Users.select { Users.name eq name and (Users.domain eq domain) }.single().toUser()
|
||||
|
||||
override suspend fun findByUrl(url: String): User {
|
||||
return Users.select { Users.url eq url }.single().toUser()
|
||||
}
|
||||
override suspend fun findByUrl(url: String): User = Users.select { Users.url eq url }.single().toUser()
|
||||
|
||||
override suspend fun findByIds(ids: List<Long>): List<User> =
|
||||
Users.select { Users.id inList ids }.map { it.toUser() }
|
||||
}
|
||||
|
|
|
@ -12,8 +12,6 @@ interface IUserApiService {
|
|||
|
||||
suspend fun findByAcct(acct: Acct): UserResponse
|
||||
|
||||
suspend fun findByAccts(accts: List<Acct>): List<UserResponse>
|
||||
|
||||
suspend fun findFollowers(userId: Long): List<UserResponse>
|
||||
|
||||
suspend fun findFollowings(userId: Long): List<UserResponse>
|
||||
|
|
|
@ -3,36 +3,38 @@ package dev.usbharu.hideout.service.api
|
|||
import dev.usbharu.hideout.config.Config
|
||||
import dev.usbharu.hideout.domain.model.Acct
|
||||
import dev.usbharu.hideout.domain.model.hideout.dto.UserResponse
|
||||
import dev.usbharu.hideout.service.user.IUserService
|
||||
import dev.usbharu.hideout.query.FollowerQueryService
|
||||
import dev.usbharu.hideout.query.UserQueryService
|
||||
import org.koin.core.annotation.Single
|
||||
import kotlin.math.min
|
||||
|
||||
@Single
|
||||
class UserApiServiceImpl(private val userService: IUserService) : IUserApiService {
|
||||
class UserApiServiceImpl(
|
||||
private val userQueryService: UserQueryService,
|
||||
private val followerQueryService: FollowerQueryService
|
||||
) : IUserApiService {
|
||||
override suspend fun findAll(limit: Int?, offset: Long): List<UserResponse> =
|
||||
userService.findAll(limit, offset).map { UserResponse.from(it) }
|
||||
userQueryService.findAll(min(limit ?: 100, 100), offset).map { UserResponse.from(it) }
|
||||
|
||||
override suspend fun findById(id: Long): UserResponse = UserResponse.from(userService.findById(id))
|
||||
override suspend fun findById(id: Long): UserResponse = UserResponse.from(userQueryService.findById(id))
|
||||
|
||||
override suspend fun findByIds(ids: List<Long>): List<UserResponse> =
|
||||
userService.findByIds(ids).map { UserResponse.from(it) }
|
||||
userQueryService.findByIds(ids).map { UserResponse.from(it) }
|
||||
|
||||
override suspend fun findByAcct(acct: Acct): UserResponse =
|
||||
UserResponse.from(userService.findByNameAndDomain(acct.username, acct.domain))
|
||||
|
||||
override suspend fun findByAccts(accts: List<Acct>): List<UserResponse> {
|
||||
return userService.findByNameAndDomains(accts.map { it.username to (it.domain ?: Config.configData.domain) })
|
||||
.map { UserResponse.from(it) }
|
||||
}
|
||||
UserResponse.from(userQueryService.findByNameAndDomain(acct.username, acct.domain ?: Config.configData.domain))
|
||||
|
||||
override suspend fun findFollowers(userId: Long): List<UserResponse> =
|
||||
userService.findFollowersById(userId).map { UserResponse.from(it) }
|
||||
followerQueryService.findFollowersById(userId).map { UserResponse.from(it) }
|
||||
|
||||
override suspend fun findFollowings(userId: Long): List<UserResponse> =
|
||||
userService.findFollowingById(userId).map { UserResponse.from(it) }
|
||||
followerQueryService.findFollowingById(userId).map { UserResponse.from(it) }
|
||||
|
||||
override suspend fun findFollowersByAcct(acct: Acct): List<UserResponse> =
|
||||
userService.findFollowersByNameAndDomain(acct.username, acct.domain).map { UserResponse.from(it) }
|
||||
followerQueryService.findFollowersByNameAndDomain(acct.username, acct.domain ?: Config.configData.domain)
|
||||
.map { UserResponse.from(it) }
|
||||
|
||||
override suspend fun findFollowingsByAcct(acct: Acct): List<UserResponse> =
|
||||
userService.findFollowingByNameAndDomain(acct.username, acct.domain).map { UserResponse.from(it) }
|
||||
followerQueryService.findFollowingByNameAndDomain(acct.username, acct.domain ?: Config.configData.domain)
|
||||
.map { UserResponse.from(it) }
|
||||
}
|
||||
|
|
|
@ -10,16 +10,8 @@ interface IUserService {
|
|||
|
||||
suspend fun findById(id: Long): User
|
||||
|
||||
suspend fun findByIds(ids: List<Long>): List<User>
|
||||
|
||||
suspend fun findByName(name: String): List<User>
|
||||
|
||||
suspend fun findByNameLocalUser(name: String): User
|
||||
|
||||
suspend fun findByNameAndDomain(name: String, domain: String? = null): User
|
||||
|
||||
suspend fun findByNameAndDomains(names: List<Pair<String, String>>): List<User>
|
||||
|
||||
suspend fun findByUrl(url: String): User
|
||||
|
||||
suspend fun findByUrls(urls: List<String>): List<User>
|
||||
|
@ -32,12 +24,6 @@ interface IUserService {
|
|||
|
||||
suspend fun findFollowersById(id: Long): List<User>
|
||||
|
||||
suspend fun findFollowersByNameAndDomain(name: String, domain: String?): List<User>
|
||||
|
||||
suspend fun findFollowingById(id: Long): List<User>
|
||||
|
||||
suspend fun findFollowingByNameAndDomain(name: String, domain: String?): List<User>
|
||||
|
||||
/**
|
||||
* フォローリクエストを送信する
|
||||
*
|
||||
|
|
|
@ -31,23 +31,11 @@ class UserService(
|
|||
override suspend fun findById(id: Long): User =
|
||||
userRepository.findById(id) ?: throw UserNotFoundException("$id was not found.")
|
||||
|
||||
override suspend fun findByIds(ids: List<Long>): List<User> = userRepository.findByIds(ids)
|
||||
|
||||
override suspend fun findByName(name: String): List<User> = userRepository.findByName(name)
|
||||
|
||||
override suspend fun findByNameLocalUser(name: String): User {
|
||||
return userRepository.findByNameAndDomain(name, Config.configData.domain)
|
||||
?: throw UserNotFoundException("$name was not found.")
|
||||
}
|
||||
|
||||
override suspend fun findByNameAndDomain(name: String, domain: String?): User {
|
||||
return userRepository.findByNameAndDomain(name, domain ?: Config.configData.domain)
|
||||
?: throw UserNotFoundException("$name was not found.")
|
||||
}
|
||||
|
||||
override suspend fun findByNameAndDomains(names: List<Pair<String, String>>): List<User> =
|
||||
userRepository.findByNameAndDomains(names)
|
||||
|
||||
override suspend fun findByUrl(url: String): User =
|
||||
userRepository.findByUrl(url) ?: throw UserNotFoundException("$url was not found.")
|
||||
|
||||
|
@ -97,17 +85,6 @@ class UserService(
|
|||
}
|
||||
|
||||
override suspend fun findFollowersById(id: Long): List<User> = userRepository.findFollowersById(id)
|
||||
override suspend fun findFollowersByNameAndDomain(name: String, domain: String?): List<User> {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override suspend fun findFollowingById(id: Long): List<User> {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override suspend fun findFollowingByNameAndDomain(name: String, domain: String?): List<User> {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
// TODO APのフォロー処理を作る
|
||||
override suspend fun followRequest(id: Long, followerId: Long): Boolean {
|
||||
|
|
Loading…
Reference in New Issue