mirror of https://github.com/usbharu/Hideout.git
doc: ドキュメントを追加
This commit is contained in:
parent
2c1da54a77
commit
1a7cec5c7b
|
@ -8,6 +8,9 @@ import dev.usbharu.hideout.core.external.job.DeliverBlockJobParam
|
||||||
import dev.usbharu.hideout.core.service.job.JobProcessor
|
import dev.usbharu.hideout.core.service.job.JobProcessor
|
||||||
import org.springframework.stereotype.Service
|
import org.springframework.stereotype.Service
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ブロックアクティビティ配送を処理します
|
||||||
|
*/
|
||||||
@Service
|
@Service
|
||||||
class APDeliverBlockJobProcessor(
|
class APDeliverBlockJobProcessor(
|
||||||
private val apRequestService: APRequestService,
|
private val apRequestService: APRequestService,
|
||||||
|
|
|
@ -10,6 +10,9 @@ import dev.usbharu.hideout.core.service.block.BlockService
|
||||||
import org.springframework.stereotype.Service
|
import org.springframework.stereotype.Service
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ブロックアクティビティを処理します
|
||||||
|
*/
|
||||||
@Service
|
@Service
|
||||||
class BlockActivityPubProcessor(
|
class BlockActivityPubProcessor(
|
||||||
private val blockService: BlockService,
|
private val blockService: BlockService,
|
||||||
|
|
|
@ -1,5 +1,11 @@
|
||||||
package dev.usbharu.hideout.core.domain.model.block
|
package dev.usbharu.hideout.core.domain.model.block
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ブロック関係を表します
|
||||||
|
*
|
||||||
|
* @property userId ブロックの動作を行ったユーザーid
|
||||||
|
* @property target ブロックの対象のユーザーid
|
||||||
|
*/
|
||||||
data class Block(
|
data class Block(
|
||||||
val userId: Long,
|
val userId: Long,
|
||||||
val target: Long
|
val target: Long
|
||||||
|
|
|
@ -1,7 +1,31 @@
|
||||||
package dev.usbharu.hideout.core.domain.model.block
|
package dev.usbharu.hideout.core.domain.model.block
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ブロックの状態を永続化します
|
||||||
|
*
|
||||||
|
*/
|
||||||
interface BlockRepository {
|
interface BlockRepository {
|
||||||
|
/**
|
||||||
|
* ブロックの状態を永続化します
|
||||||
|
*
|
||||||
|
* @param block 永続化するブロック
|
||||||
|
* @return 永続化されたブロック
|
||||||
|
*/
|
||||||
suspend fun save(block: Block): Block
|
suspend fun save(block: Block): Block
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ブロックの状態を削除します
|
||||||
|
*
|
||||||
|
* @param block 削除する永続化されたブロック
|
||||||
|
*/
|
||||||
suspend fun delete(block: Block)
|
suspend fun delete(block: Block)
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @param userId
|
||||||
|
* @param target
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
suspend fun findByUserIdAndTarget(userId: Long, target: Long): Block
|
suspend fun findByUserIdAndTarget(userId: Long, target: Long): Block
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,6 +9,14 @@ import kjob.core.job.JobProps
|
||||||
import org.springframework.beans.factory.annotation.Qualifier
|
import org.springframework.beans.factory.annotation.Qualifier
|
||||||
import org.springframework.stereotype.Component
|
import org.springframework.stereotype.Component
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ブロックアクティビティ配送のジョブパラメーター
|
||||||
|
*
|
||||||
|
* @property signer ブロック操作を行ったユーザーid
|
||||||
|
* @property block 配送するブロックアクティビティ
|
||||||
|
* @property reject 配送するフォロー解除アクティビティ
|
||||||
|
* @property inbox 配送先url
|
||||||
|
*/
|
||||||
data class DeliverBlockJobParam(
|
data class DeliverBlockJobParam(
|
||||||
val signer: Long,
|
val signer: Long,
|
||||||
val block: Block,
|
val block: Block,
|
||||||
|
@ -16,6 +24,9 @@ data class DeliverBlockJobParam(
|
||||||
val inbox: String
|
val inbox: String
|
||||||
)
|
)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ブロックアクティビティ配送のジョブ
|
||||||
|
*/
|
||||||
@Component
|
@Component
|
||||||
class DeliverBlockJob(@Qualifier("activitypub") private val objectMapper: ObjectMapper) :
|
class DeliverBlockJob(@Qualifier("activitypub") private val objectMapper: ObjectMapper) :
|
||||||
HideoutJob<DeliverBlockJobParam, DeliverBlockJob>("DeliverBlockJob") {
|
HideoutJob<DeliverBlockJobParam, DeliverBlockJob>("DeliverBlockJob") {
|
||||||
|
|
|
@ -1,6 +1,25 @@
|
||||||
package dev.usbharu.hideout.core.service.block
|
package dev.usbharu.hideout.core.service.block
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ブロックに関する処理を行います
|
||||||
|
*
|
||||||
|
*/
|
||||||
interface BlockService {
|
interface BlockService {
|
||||||
|
/**
|
||||||
|
* ブロックします
|
||||||
|
* 実装はリモートユーザーへのブロックの場合ブロックアクティビティを配送するべきです。
|
||||||
|
*
|
||||||
|
* @param userId ブロックの動作を行ったユーザーid
|
||||||
|
* @param target ブロック対象のユーザーid
|
||||||
|
*/
|
||||||
suspend fun block(userId: Long, target: Long)
|
suspend fun block(userId: Long, target: Long)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ブロックを解除します
|
||||||
|
* 実装はリモートユーザーへのブロック解除の場合Undo Blockアクティビティを配送するべきです
|
||||||
|
*
|
||||||
|
* @param userId ブロック解除の動作を行ったユーザーid
|
||||||
|
* @param target ブロック解除の対象のユーザーid
|
||||||
|
*/
|
||||||
suspend fun unblock(userId: Long, target: Long)
|
suspend fun unblock(userId: Long, target: Long)
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,6 +35,14 @@ interface AccountApiService {
|
||||||
suspend fun follow(userid: Long, followeeId: Long): Relationship
|
suspend fun follow(userid: Long, followeeId: Long): Relationship
|
||||||
suspend fun account(id: Long): Account
|
suspend fun account(id: Long): Account
|
||||||
suspend fun relationships(userid: Long, id: List<Long>, withSuspended: Boolean): List<Relationship>
|
suspend fun relationships(userid: Long, id: List<Long>, withSuspended: Boolean): List<Relationship>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ブロック操作を行う
|
||||||
|
*
|
||||||
|
* @param userid ブロック操作を行ったユーザーid
|
||||||
|
* @param target ブロック対象のユーザーid
|
||||||
|
* @return ブロック後のブロック対象ユーザーとの[Relationship]
|
||||||
|
*/
|
||||||
suspend fun block(userid: Long, target: Long): Relationship
|
suspend fun block(userid: Long, target: Long): Relationship
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue