mirror of https://github.com/usbharu/Hideout.git
feat: フォローリクエストAPIを追加
This commit is contained in:
parent
4e8cffdbe2
commit
ddaf630ed3
|
@ -45,6 +45,6 @@ Ja15+ZWbOA4vJA9pOh3x4XM=
|
||||||
'http://localhost/users/test-user#pubkey', 'http://localhost/users/test-user/following',
|
'http://localhost/users/test-user#pubkey', 'http://localhost/users/test-user/following',
|
||||||
'http://localhost/users/test-users/followers', null, false);
|
'http://localhost/users/test-users/followers', null, false);
|
||||||
|
|
||||||
insert into user_details (actor_id, password, auto_accept_follow_request, auto_accept_followee_follow_request)
|
insert into user_details (actor_id, password, auto_accept_followee_follow_request)
|
||||||
values ( 1730415786666758144
|
values ( 1730415786666758144
|
||||||
, '$2a$10$/mWC/n7nC7X3l9qCEOKnredxne2zewoqEsJWTOdlKfg2zXKJ0F9Em', true, true)
|
, '$2a$10$/mWC/n7nC7X3l9qCEOKnredxne2zewoqEsJWTOdlKfg2zXKJ0F9Em', true)
|
||||||
|
|
|
@ -9,7 +9,7 @@ package dev.usbharu.hideout.core.domain.model.relationship
|
||||||
* @property blocking ブロックしているか
|
* @property blocking ブロックしているか
|
||||||
* @property muting ミュートしているか
|
* @property muting ミュートしているか
|
||||||
* @property followRequest フォローリクエストを送っているか
|
* @property followRequest フォローリクエストを送っているか
|
||||||
* @property ignoreFollowRequestFromTarget フォローリクエストを無視しているか
|
* @property ignoreFollowRequestToTarget フォローリクエストを無視しているか
|
||||||
*/
|
*/
|
||||||
data class Relationship(
|
data class Relationship(
|
||||||
val actorId: Long,
|
val actorId: Long,
|
||||||
|
@ -18,5 +18,5 @@ data class Relationship(
|
||||||
val blocking: Boolean,
|
val blocking: Boolean,
|
||||||
val muting: Boolean,
|
val muting: Boolean,
|
||||||
val followRequest: Boolean,
|
val followRequest: Boolean,
|
||||||
val ignoreFollowRequestFromTarget: Boolean
|
val ignoreFollowRequestToTarget: Boolean
|
||||||
)
|
)
|
||||||
|
|
|
@ -25,7 +25,7 @@ class RelationshipRepositoryImpl : RelationshipRepository {
|
||||||
it[blocking] = relationship.blocking
|
it[blocking] = relationship.blocking
|
||||||
it[muting] = relationship.muting
|
it[muting] = relationship.muting
|
||||||
it[followRequest] = relationship.followRequest
|
it[followRequest] = relationship.followRequest
|
||||||
it[ignoreFollowRequestFromTarget] = relationship.ignoreFollowRequestFromTarget
|
it[ignoreFollowRequestFromTarget] = relationship.ignoreFollowRequestToTarget
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Relationships
|
Relationships
|
||||||
|
@ -37,7 +37,7 @@ class RelationshipRepositoryImpl : RelationshipRepository {
|
||||||
it[blocking] = relationship.blocking
|
it[blocking] = relationship.blocking
|
||||||
it[muting] = relationship.muting
|
it[muting] = relationship.muting
|
||||||
it[followRequest] = relationship.followRequest
|
it[followRequest] = relationship.followRequest
|
||||||
it[ignoreFollowRequestFromTarget] = relationship.ignoreFollowRequestFromTarget
|
it[ignoreFollowRequestFromTarget] = relationship.ignoreFollowRequestToTarget
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return relationship
|
return relationship
|
||||||
|
@ -66,7 +66,7 @@ fun ResultRow.toRelationships(): Relationship = Relationship(
|
||||||
blocking = this[Relationships.blocking],
|
blocking = this[Relationships.blocking],
|
||||||
muting = this[Relationships.muting],
|
muting = this[Relationships.muting],
|
||||||
followRequest = this[Relationships.followRequest],
|
followRequest = this[Relationships.followRequest],
|
||||||
ignoreFollowRequestFromTarget = this[Relationships.ignoreFollowRequestFromTarget]
|
ignoreFollowRequestToTarget = this[Relationships.ignoreFollowRequestFromTarget]
|
||||||
)
|
)
|
||||||
|
|
||||||
object Relationships : LongIdTable("relationships") {
|
object Relationships : LongIdTable("relationships") {
|
||||||
|
|
|
@ -13,4 +13,18 @@ class RelationshipQueryServiceImpl : RelationshipQueryService {
|
||||||
override suspend fun findByTargetIdAndFollowing(targetId: Long, following: Boolean): List<Relationship> =
|
override suspend fun findByTargetIdAndFollowing(targetId: Long, following: Boolean): List<Relationship> =
|
||||||
Relationships.select { Relationships.targetActorId eq targetId and (Relationships.following eq following) }
|
Relationships.select { Relationships.targetActorId eq targetId and (Relationships.following eq following) }
|
||||||
.map { it.toRelationships() }
|
.map { it.toRelationships() }
|
||||||
|
|
||||||
|
override suspend fun findByTargetIdAndFollowRequestAndIgnoreFollowRequest(
|
||||||
|
targetId: Long,
|
||||||
|
followRequest: Boolean,
|
||||||
|
ignoreFollowRequest: Boolean
|
||||||
|
): List<Relationship> {
|
||||||
|
return Relationships
|
||||||
|
.select {
|
||||||
|
Relationships.targetActorId.eq(targetId)
|
||||||
|
.and(Relationships.followRequest.eq(followRequest))
|
||||||
|
.and(Relationships.ignoreFollowRequestFromTarget.eq(ignoreFollowRequest))
|
||||||
|
}
|
||||||
|
.map { it.toRelationships() }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,4 +5,9 @@ import dev.usbharu.hideout.core.domain.model.relationship.Relationship
|
||||||
interface RelationshipQueryService {
|
interface RelationshipQueryService {
|
||||||
|
|
||||||
suspend fun findByTargetIdAndFollowing(targetId: Long, following: Boolean): List<Relationship>
|
suspend fun findByTargetIdAndFollowing(targetId: Long, following: Boolean): List<Relationship>
|
||||||
|
suspend fun findByTargetIdAndFollowRequestAndIgnoreFollowRequest(
|
||||||
|
targetId: Long,
|
||||||
|
followRequest: Boolean,
|
||||||
|
ignoreFollowRequest: Boolean
|
||||||
|
): List<Relationship>
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,7 +38,7 @@ class RelationshipServiceImpl(
|
||||||
blocking = false,
|
blocking = false,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = true,
|
followRequest = true,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
|
|
||||||
val inverseRelationship = relationshipRepository.findByUserIdAndTargetUserId(targetId, actorId) ?: Relationship(
|
val inverseRelationship = relationshipRepository.findByUserIdAndTargetUserId(targetId, actorId) ?: Relationship(
|
||||||
|
@ -48,7 +48,7 @@ class RelationshipServiceImpl(
|
||||||
blocking = false,
|
blocking = false,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = false,
|
followRequest = false,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
|
|
||||||
if (inverseRelationship.blocking) {
|
if (inverseRelationship.blocking) {
|
||||||
|
@ -60,7 +60,7 @@ class RelationshipServiceImpl(
|
||||||
logger.debug("FAILED Blocking user. userId: {} targetId: {}", actorId, targetId)
|
logger.debug("FAILED Blocking user. userId: {} targetId: {}", actorId, targetId)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (inverseRelationship.ignoreFollowRequestFromTarget) {
|
if (relationship.ignoreFollowRequestToTarget) {
|
||||||
logger.debug("SUCCESS Ignore Follow Request. userId: {} targetId: {}", actorId, targetId)
|
logger.debug("SUCCESS Ignore Follow Request. userId: {} targetId: {}", actorId, targetId)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -95,7 +95,7 @@ class RelationshipServiceImpl(
|
||||||
blocking = true,
|
blocking = true,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = false,
|
followRequest = false,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
|
|
||||||
val inverseRelationship = relationshipRepository.findByUserIdAndTargetUserId(targetId, actorId)
|
val inverseRelationship = relationshipRepository.findByUserIdAndTargetUserId(targetId, actorId)
|
||||||
|
@ -126,7 +126,7 @@ class RelationshipServiceImpl(
|
||||||
blocking = false,
|
blocking = false,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = false,
|
followRequest = false,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
|
|
||||||
if (relationship == null) {
|
if (relationship == null) {
|
||||||
|
@ -191,16 +191,16 @@ class RelationshipServiceImpl(
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun ignoreFollowRequest(actorId: Long, targetId: Long) {
|
override suspend fun ignoreFollowRequest(actorId: Long, targetId: Long) {
|
||||||
val relationship = relationshipRepository.findByUserIdAndTargetUserId(actorId, targetId)
|
val relationship = relationshipRepository.findByUserIdAndTargetUserId(targetId, actorId)
|
||||||
?.copy(ignoreFollowRequestFromTarget = true)
|
?.copy(ignoreFollowRequestToTarget = true)
|
||||||
?: Relationship(
|
?: Relationship(
|
||||||
actorId = actorId,
|
actorId = targetId,
|
||||||
targetActorId = targetId,
|
targetActorId = actorId,
|
||||||
following = false,
|
following = false,
|
||||||
blocking = false,
|
blocking = false,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = false,
|
followRequest = false,
|
||||||
ignoreFollowRequestFromTarget = true
|
ignoreFollowRequestToTarget = true
|
||||||
)
|
)
|
||||||
|
|
||||||
relationshipRepository.save(relationship)
|
relationshipRepository.save(relationship)
|
||||||
|
@ -263,7 +263,7 @@ class RelationshipServiceImpl(
|
||||||
blocking = false,
|
blocking = false,
|
||||||
muting = true,
|
muting = true,
|
||||||
followRequest = false,
|
followRequest = false,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
|
|
||||||
relationshipRepository.save(relationship)
|
relationshipRepository.save(relationship)
|
||||||
|
|
|
@ -2,6 +2,7 @@ package dev.usbharu.hideout.mastodon.service.account
|
||||||
|
|
||||||
import dev.usbharu.hideout.application.external.Transaction
|
import dev.usbharu.hideout.application.external.Transaction
|
||||||
import dev.usbharu.hideout.core.domain.model.relationship.RelationshipRepository
|
import dev.usbharu.hideout.core.domain.model.relationship.RelationshipRepository
|
||||||
|
import dev.usbharu.hideout.core.query.RelationshipQueryService
|
||||||
import dev.usbharu.hideout.core.service.media.MediaService
|
import dev.usbharu.hideout.core.service.media.MediaService
|
||||||
import dev.usbharu.hideout.core.service.relationship.RelationshipService
|
import dev.usbharu.hideout.core.service.relationship.RelationshipService
|
||||||
import dev.usbharu.hideout.core.service.user.UpdateUserDto
|
import dev.usbharu.hideout.core.service.user.UpdateUserDto
|
||||||
|
@ -49,6 +50,9 @@ interface AccountApiService {
|
||||||
suspend fun unfollow(userid: Long, target: Long): Relationship
|
suspend fun unfollow(userid: Long, target: Long): Relationship
|
||||||
suspend fun removeFromFollowers(userid: Long, target: Long): Relationship
|
suspend fun removeFromFollowers(userid: Long, target: Long): Relationship
|
||||||
suspend fun updateProfile(userid: Long, updateCredentials: UpdateCredentials?): Account
|
suspend fun updateProfile(userid: Long, updateCredentials: UpdateCredentials?): Account
|
||||||
|
suspend fun followRequests(loginUser: Long): List<Account>
|
||||||
|
suspend fun acceptFollowRequest(loginUser: Long, target: Long): Relationship
|
||||||
|
suspend fun rejectFollowRequest(loginUser: Long, target: Long): Relationship
|
||||||
}
|
}
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
|
@ -59,7 +63,8 @@ class AccountApiServiceImpl(
|
||||||
private val statusQueryService: StatusQueryService,
|
private val statusQueryService: StatusQueryService,
|
||||||
private val relationshipService: RelationshipService,
|
private val relationshipService: RelationshipService,
|
||||||
private val relationshipRepository: RelationshipRepository,
|
private val relationshipRepository: RelationshipRepository,
|
||||||
private val mediaService: MediaService
|
private val mediaService: MediaService,
|
||||||
|
private val relationshipQueryService: RelationshipQueryService
|
||||||
) :
|
) :
|
||||||
AccountApiService {
|
AccountApiService {
|
||||||
override suspend fun accountsStatuses(
|
override suspend fun accountsStatuses(
|
||||||
|
@ -203,6 +208,26 @@ class AccountApiServiceImpl(
|
||||||
accountService.findById(userid)
|
accountService.findById(userid)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override suspend fun followRequests(loginUser: Long): List<Account> = transaction.transaction {
|
||||||
|
val actorIdList = relationshipQueryService
|
||||||
|
.findByTargetIdAndFollowRequestAndIgnoreFollowRequest(loginUser, true, true)
|
||||||
|
.map { it.actorId }
|
||||||
|
|
||||||
|
return@transaction accountService.findByIds(actorIdList)
|
||||||
|
}
|
||||||
|
|
||||||
|
override suspend fun acceptFollowRequest(loginUser: Long, target: Long): Relationship = transaction.transaction {
|
||||||
|
relationshipService.acceptFollowRequest(loginUser, target)
|
||||||
|
|
||||||
|
return@transaction fetchRelationship(loginUser, target)
|
||||||
|
}
|
||||||
|
|
||||||
|
override suspend fun rejectFollowRequest(loginUser: Long, target: Long): Relationship = transaction.transaction {
|
||||||
|
relationshipService.rejectFollowRequest(loginUser, target)
|
||||||
|
|
||||||
|
return@transaction fetchRelationship(loginUser, target)
|
||||||
|
}
|
||||||
|
|
||||||
private fun from(account: Account): CredentialAccount {
|
private fun from(account: Account): CredentialAccount {
|
||||||
return CredentialAccount(
|
return CredentialAccount(
|
||||||
id = account.id,
|
id = account.id,
|
||||||
|
@ -250,7 +275,7 @@ class AccountApiServiceImpl(
|
||||||
blocking = false,
|
blocking = false,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = false,
|
followRequest = false,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
|
|
||||||
val inverseRelationship = relationshipRepository.findByUserIdAndTargetUserId(targetId, userid)
|
val inverseRelationship = relationshipRepository.findByUserIdAndTargetUserId(targetId, userid)
|
||||||
|
@ -261,7 +286,7 @@ class AccountApiServiceImpl(
|
||||||
blocking = false,
|
blocking = false,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = false,
|
followRequest = false,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
|
|
||||||
return Relationship(
|
return Relationship(
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
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.application.config.ApplicationConfig
|
||||||
|
import dev.usbharu.hideout.core.domain.model.actor.Actor
|
||||||
import dev.usbharu.hideout.core.query.ActorQueryService
|
import dev.usbharu.hideout.core.query.ActorQueryService
|
||||||
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
|
||||||
|
@ -8,6 +9,7 @@ import org.springframework.stereotype.Service
|
||||||
@Service
|
@Service
|
||||||
interface AccountService {
|
interface AccountService {
|
||||||
suspend fun findById(id: Long): Account
|
suspend fun findById(id: Long): Account
|
||||||
|
suspend fun findByIds(ids: List<Long>): List<Account>
|
||||||
}
|
}
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
|
@ -17,6 +19,10 @@ class AccountServiceImpl(
|
||||||
) : AccountService {
|
) : AccountService {
|
||||||
override suspend fun findById(id: Long): Account {
|
override suspend fun findById(id: Long): Account {
|
||||||
val findById = actorQueryService.findById(id)
|
val findById = actorQueryService.findById(id)
|
||||||
|
return toAccount(findById)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun toAccount(findById: Actor): Account {
|
||||||
val userUrl = applicationConfig.url.toString() + "/users/" + findById.id.toString()
|
val userUrl = applicationConfig.url.toString() + "/users/" + findById.id.toString()
|
||||||
|
|
||||||
return Account(
|
return Account(
|
||||||
|
@ -42,4 +48,7 @@ class AccountServiceImpl(
|
||||||
followersCount = 0,
|
followersCount = 0,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override suspend fun findByIds(ids: List<Long>): List<Account> =
|
||||||
|
actorQueryService.findByIds(ids).map { toAccount(it) }
|
||||||
}
|
}
|
||||||
|
|
|
@ -576,6 +576,86 @@ paths:
|
||||||
schema:
|
schema:
|
||||||
$ref: "#/components/schemas/MediaAttachment"
|
$ref: "#/components/schemas/MediaAttachment"
|
||||||
|
|
||||||
|
/api/v1/follow_requests:
|
||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- accounts
|
||||||
|
security:
|
||||||
|
- OAuth2:
|
||||||
|
- "read:follows"
|
||||||
|
parameters:
|
||||||
|
- in: query
|
||||||
|
name: max_id
|
||||||
|
schema:
|
||||||
|
type: integer
|
||||||
|
required: false
|
||||||
|
- in: query
|
||||||
|
name: since_id
|
||||||
|
schema:
|
||||||
|
type: integer
|
||||||
|
required: false
|
||||||
|
- in: query
|
||||||
|
name: limit
|
||||||
|
schema:
|
||||||
|
type: integer
|
||||||
|
required: false
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
description: 成功
|
||||||
|
headers:
|
||||||
|
Link:
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
description: ページネーション
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: "#/components/schemas/Account"
|
||||||
|
|
||||||
|
/api/v1/follow_requests/{account_id}/authorize:
|
||||||
|
post:
|
||||||
|
tags:
|
||||||
|
- accounts
|
||||||
|
security:
|
||||||
|
- OAuth2:
|
||||||
|
- "write:follows"
|
||||||
|
parameters:
|
||||||
|
- in: path
|
||||||
|
name: account_id
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
required: true
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
description: 成功
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: "#/components/schemas/Relationship"
|
||||||
|
|
||||||
|
/api/v1/follow_requests/{account_id}/reject:
|
||||||
|
post:
|
||||||
|
tags:
|
||||||
|
- accounts
|
||||||
|
security:
|
||||||
|
- OAuth2:
|
||||||
|
- "write:follows"
|
||||||
|
parameters:
|
||||||
|
- in: path
|
||||||
|
name: account_id
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
required: true
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
description: 成功
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: "#/components/schemas/Relationship"
|
||||||
|
|
||||||
components:
|
components:
|
||||||
schemas:
|
schemas:
|
||||||
V1MediaRequest:
|
V1MediaRequest:
|
||||||
|
|
|
@ -67,7 +67,7 @@ class RelationshipServiceImplTest {
|
||||||
blocking = false,
|
blocking = false,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = true,
|
followRequest = true,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -91,7 +91,7 @@ class RelationshipServiceImplTest {
|
||||||
blocking = false,
|
blocking = false,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = true,
|
followRequest = true,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -110,7 +110,7 @@ class RelationshipServiceImplTest {
|
||||||
blocking = true,
|
blocking = true,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = false,
|
followRequest = false,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -129,7 +129,7 @@ class RelationshipServiceImplTest {
|
||||||
blocking = true,
|
blocking = true,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = false,
|
followRequest = false,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -152,7 +152,7 @@ class RelationshipServiceImplTest {
|
||||||
blocking = false,
|
blocking = false,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = false,
|
followRequest = false,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -167,7 +167,7 @@ class RelationshipServiceImplTest {
|
||||||
blocking = false,
|
blocking = false,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = false,
|
followRequest = false,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -186,7 +186,7 @@ class RelationshipServiceImplTest {
|
||||||
blocking = false,
|
blocking = false,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = false,
|
followRequest = false,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = true
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -198,7 +198,7 @@ class RelationshipServiceImplTest {
|
||||||
blocking = false,
|
blocking = false,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = false,
|
followRequest = false,
|
||||||
ignoreFollowRequestFromTarget = true
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -222,7 +222,7 @@ class RelationshipServiceImplTest {
|
||||||
blocking = true,
|
blocking = true,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = false,
|
followRequest = false,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -246,7 +246,7 @@ class RelationshipServiceImplTest {
|
||||||
blocking = true,
|
blocking = true,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = false,
|
followRequest = false,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -266,7 +266,7 @@ class RelationshipServiceImplTest {
|
||||||
blocking = false,
|
blocking = false,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = true,
|
followRequest = true,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -280,7 +280,7 @@ class RelationshipServiceImplTest {
|
||||||
blocking = false,
|
blocking = false,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = false,
|
followRequest = false,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -302,7 +302,7 @@ class RelationshipServiceImplTest {
|
||||||
blocking = false,
|
blocking = false,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = true,
|
followRequest = true,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -317,7 +317,7 @@ class RelationshipServiceImplTest {
|
||||||
blocking = false,
|
blocking = false,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = false,
|
followRequest = false,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -366,7 +366,7 @@ class RelationshipServiceImplTest {
|
||||||
blocking = false,
|
blocking = false,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = false,
|
followRequest = false,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -420,7 +420,7 @@ class RelationshipServiceImplTest {
|
||||||
blocking = false,
|
blocking = false,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = true,
|
followRequest = true,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -435,7 +435,7 @@ class RelationshipServiceImplTest {
|
||||||
blocking = false,
|
blocking = false,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = false,
|
followRequest = false,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -459,7 +459,7 @@ class RelationshipServiceImplTest {
|
||||||
blocking = false,
|
blocking = false,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = true,
|
followRequest = true,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -474,7 +474,7 @@ class RelationshipServiceImplTest {
|
||||||
blocking = false,
|
blocking = false,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = false,
|
followRequest = false,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -500,7 +500,7 @@ class RelationshipServiceImplTest {
|
||||||
blocking = false,
|
blocking = false,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = false,
|
followRequest = false,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -516,13 +516,13 @@ class RelationshipServiceImplTest {
|
||||||
verify(relationshipRepository, times(1)).save(
|
verify(relationshipRepository, times(1)).save(
|
||||||
eq(
|
eq(
|
||||||
Relationship(
|
Relationship(
|
||||||
actorId = 1234,
|
actorId = 5678,
|
||||||
targetActorId = 5678,
|
targetActorId = 1234,
|
||||||
following = false,
|
following = false,
|
||||||
blocking = false,
|
blocking = false,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = false,
|
followRequest = false,
|
||||||
ignoreFollowRequestFromTarget = true
|
ignoreFollowRequestToTarget = true
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -539,7 +539,7 @@ class RelationshipServiceImplTest {
|
||||||
blocking = false,
|
blocking = false,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = false,
|
followRequest = false,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -554,7 +554,7 @@ class RelationshipServiceImplTest {
|
||||||
blocking = false,
|
blocking = false,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = false,
|
followRequest = false,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -578,7 +578,7 @@ class RelationshipServiceImplTest {
|
||||||
blocking = false,
|
blocking = false,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = false,
|
followRequest = false,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -593,7 +593,7 @@ class RelationshipServiceImplTest {
|
||||||
blocking = false,
|
blocking = false,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = false,
|
followRequest = false,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -618,7 +618,7 @@ class RelationshipServiceImplTest {
|
||||||
blocking = false,
|
blocking = false,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = false,
|
followRequest = false,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -638,7 +638,7 @@ class RelationshipServiceImplTest {
|
||||||
blocking = true,
|
blocking = true,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = false,
|
followRequest = false,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -653,7 +653,7 @@ class RelationshipServiceImplTest {
|
||||||
blocking = false,
|
blocking = false,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = false,
|
followRequest = false,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -677,7 +677,7 @@ class RelationshipServiceImplTest {
|
||||||
blocking = true,
|
blocking = true,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = false,
|
followRequest = false,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -717,7 +717,7 @@ class RelationshipServiceImplTest {
|
||||||
blocking = false,
|
blocking = false,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = false,
|
followRequest = false,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -739,7 +739,7 @@ class RelationshipServiceImplTest {
|
||||||
blocking = false,
|
blocking = false,
|
||||||
muting = true,
|
muting = true,
|
||||||
followRequest = false,
|
followRequest = false,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -756,7 +756,7 @@ class RelationshipServiceImplTest {
|
||||||
blocking = false,
|
blocking = false,
|
||||||
muting = true,
|
muting = true,
|
||||||
followRequest = false,
|
followRequest = false,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -771,7 +771,7 @@ class RelationshipServiceImplTest {
|
||||||
blocking = false,
|
blocking = false,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = false,
|
followRequest = false,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
|
@ -4,6 +4,7 @@ import dev.usbharu.hideout.application.external.Transaction
|
||||||
import dev.usbharu.hideout.core.domain.model.actor.ActorRepository
|
import dev.usbharu.hideout.core.domain.model.actor.ActorRepository
|
||||||
import dev.usbharu.hideout.core.domain.model.relationship.RelationshipRepository
|
import dev.usbharu.hideout.core.domain.model.relationship.RelationshipRepository
|
||||||
import dev.usbharu.hideout.core.query.FollowerQueryService
|
import dev.usbharu.hideout.core.query.FollowerQueryService
|
||||||
|
import dev.usbharu.hideout.core.query.RelationshipQueryService
|
||||||
import dev.usbharu.hideout.core.service.media.MediaService
|
import dev.usbharu.hideout.core.service.media.MediaService
|
||||||
import dev.usbharu.hideout.core.service.relationship.RelationshipService
|
import dev.usbharu.hideout.core.service.relationship.RelationshipService
|
||||||
import dev.usbharu.hideout.core.service.user.UserService
|
import dev.usbharu.hideout.core.service.user.UserService
|
||||||
|
@ -49,6 +50,9 @@ class AccountApiServiceImplTest {
|
||||||
@Mock
|
@Mock
|
||||||
private lateinit var relationshipRepository: RelationshipRepository
|
private lateinit var relationshipRepository: RelationshipRepository
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private lateinit var relationshipQueryService: RelationshipQueryService
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private lateinit var mediaService: MediaService
|
private lateinit var mediaService: MediaService
|
||||||
|
|
||||||
|
@ -214,7 +218,7 @@ class AccountApiServiceImplTest {
|
||||||
blocking = false,
|
blocking = false,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = false,
|
followRequest = false,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -249,7 +253,7 @@ class AccountApiServiceImplTest {
|
||||||
blocking = false,
|
blocking = false,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = false,
|
followRequest = false,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
whenever(relationshipRepository.findByUserIdAndTargetUserId(eq(userId), eq(followeeId))).doReturn(
|
whenever(relationshipRepository.findByUserIdAndTargetUserId(eq(userId), eq(followeeId))).doReturn(
|
||||||
|
@ -260,7 +264,7 @@ class AccountApiServiceImplTest {
|
||||||
blocking = false,
|
blocking = false,
|
||||||
muting = false,
|
muting = false,
|
||||||
followRequest = false,
|
followRequest = false,
|
||||||
ignoreFollowRequestFromTarget = false
|
ignoreFollowRequestToTarget = false
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue