feat: Twidereでフォローボタンが表示されるように

This commit is contained in:
usbharu 2023-12-07 00:02:41 +09:00
parent 9067b91148
commit ff4d605480
4 changed files with 21 additions and 11 deletions

View File

@ -186,11 +186,13 @@ class SecurityConfig {
authorize(POST, "/api/v1/accounts", permitAll) authorize(POST, "/api/v1/accounts", permitAll)
authorize("/auth/sign_up", hasRole("ANONYMOUS")) authorize("/auth/sign_up", hasRole("ANONYMOUS"))
authorize(GET, "/files", permitAll) authorize(GET, "/files/*", permitAll)
authorize(GET, "/users/*/icon.jpg", permitAll) authorize(GET, "/users/*/icon.jpg", permitAll)
authorize(GET, "/users/*/header.jpg", permitAll) authorize(GET, "/users/*/header.jpg", permitAll)
authorize(GET, "/api/v1/accounts/verify_credentials", hasAnyScope("read", "read:accounts")) authorize(GET, "/api/v1/accounts/verify_credentials", hasAnyScope("read", "read:accounts"))
authorize(GET, "/api/v1/accounts/*", permitAll)
authorize(GET, "/api/v1/accounts/*/statuses", permitAll)
authorize(POST, "/api/v1/media", hasAnyScope("write", "write:media")) authorize(POST, "/api/v1/media", hasAnyScope("write", "write:media"))
authorize(POST, "/api/v1/statuses", hasAnyScope("write", "write:statuses")) authorize(POST, "/api/v1/statuses", hasAnyScope("write", "write:statuses"))

View File

@ -9,6 +9,7 @@ import dev.usbharu.hideout.domain.mastodon.model.generated.*
import dev.usbharu.hideout.mastodon.query.StatusQueryService import dev.usbharu.hideout.mastodon.query.StatusQueryService
import org.slf4j.LoggerFactory import org.slf4j.LoggerFactory
import org.springframework.stereotype.Service import org.springframework.stereotype.Service
import kotlin.math.min
@Service @Service
interface AccountApiService { interface AccountApiService {
@ -126,17 +127,18 @@ class AccountApiServiceImpl(
return@transaction accountService.findById(id) return@transaction accountService.findById(id)
} }
override suspend fun relationships(userid: Long, id: List<Long>, withSuspended: Boolean): List<Relationship> { override suspend fun relationships(userid: Long, id: List<Long>, withSuspended: Boolean): List<Relationship> =
transaction.transaction {
if (id.isEmpty()) { if (id.isEmpty()) {
return emptyList() return@transaction emptyList()
} }
logger.warn("id is too long! ({}) truncate to 20", id.size) logger.warn("id is too long! ({}) truncate to 20", id.size)
val subList = id.subList(0, 20) val subList = id.subList(0, min(id.size, 20))
return subList.map { return@transaction subList.map {
val alreadyFollow = followerQueryService.alreadyFollow(userid, it) val alreadyFollow = followerQueryService.alreadyFollow(userid, it)

View File

@ -1,5 +1,6 @@
package dev.usbharu.hideout.mastodon.service.account package dev.usbharu.hideout.mastodon.service.account
import dev.usbharu.hideout.application.config.ApplicationConfig
import dev.usbharu.hideout.core.query.UserQueryService import dev.usbharu.hideout.core.query.UserQueryService
import dev.usbharu.hideout.domain.mastodon.model.generated.Account import dev.usbharu.hideout.domain.mastodon.model.generated.Account
import org.springframework.stereotype.Service import org.springframework.stereotype.Service
@ -10,9 +11,14 @@ interface AccountService {
} }
@Service @Service
class AccountServiceImpl(private val userQueryService: UserQueryService) : AccountService { class AccountServiceImpl(
private val userQueryService: UserQueryService,
private val applicationConfig: ApplicationConfig
) : AccountService {
override suspend fun findById(id: Long): Account { override suspend fun findById(id: Long): Account {
val findById = userQueryService.findById(id) val findById = userQueryService.findById(id)
val userUrl = applicationConfig.url.toString() + "/users/" + findById.id.toString()
return Account( return Account(
id = findById.id.toString(), id = findById.id.toString(),
username = findById.name, username = findById.name,
@ -20,10 +26,10 @@ class AccountServiceImpl(private val userQueryService: UserQueryService) : Accou
url = findById.url, url = findById.url,
displayName = findById.screenName, displayName = findById.screenName,
note = findById.description, note = findById.description,
avatar = findById.url + "/icon.jpg", avatar = "$userUrl/icon.jpg",
avatarStatic = findById.url + "/icon.jpg", avatarStatic = "$userUrl/icon.jpg",
header = findById.url + "/header.jpg", header = "$userUrl/header.jpg",
headerStatic = findById.url + "/header.jpg", headerStatic = "$userUrl/header.jpg",
locked = false, locked = false,
fields = emptyList(), fields = emptyList(),
emojis = emptyList(), emojis = emptyList(),

View File

@ -215,7 +215,7 @@ paths:
- "read:follows" - "read:follows"
parameters: parameters:
- in: query - in: query
name: id name: id[]
required: false required: false
schema: schema:
type: array type: array