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 org.springframework.stereotype.Service
|
||||
|
||||
/**
|
||||
* ブロックアクティビティ配送を処理します
|
||||
*/
|
||||
@Service
|
||||
class APDeliverBlockJobProcessor(
|
||||
private val apRequestService: APRequestService,
|
||||
|
|
|
@ -10,6 +10,9 @@ import dev.usbharu.hideout.core.service.block.BlockService
|
|||
import org.springframework.stereotype.Service
|
||||
|
||||
|
||||
/**
|
||||
* ブロックアクティビティを処理します
|
||||
*/
|
||||
@Service
|
||||
class BlockActivityPubProcessor(
|
||||
private val blockService: BlockService,
|
||||
|
|
|
@ -1,5 +1,11 @@
|
|||
package dev.usbharu.hideout.core.domain.model.block
|
||||
|
||||
/**
|
||||
* ブロック関係を表します
|
||||
*
|
||||
* @property userId ブロックの動作を行ったユーザーid
|
||||
* @property target ブロックの対象のユーザーid
|
||||
*/
|
||||
data class Block(
|
||||
val userId: Long,
|
||||
val target: Long
|
||||
|
|
|
@ -1,7 +1,31 @@
|
|||
package dev.usbharu.hideout.core.domain.model.block
|
||||
|
||||
/**
|
||||
* ブロックの状態を永続化します
|
||||
*
|
||||
*/
|
||||
interface BlockRepository {
|
||||
/**
|
||||
* ブロックの状態を永続化します
|
||||
*
|
||||
* @param block 永続化するブロック
|
||||
* @return 永続化されたブロック
|
||||
*/
|
||||
suspend fun save(block: Block): Block
|
||||
|
||||
/**
|
||||
* ブロックの状態を削除します
|
||||
*
|
||||
* @param block 削除する永続化されたブロック
|
||||
*/
|
||||
suspend fun delete(block: Block)
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
* @param userId
|
||||
* @param target
|
||||
* @return
|
||||
*/
|
||||
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.stereotype.Component
|
||||
|
||||
/**
|
||||
* ブロックアクティビティ配送のジョブパラメーター
|
||||
*
|
||||
* @property signer ブロック操作を行ったユーザーid
|
||||
* @property block 配送するブロックアクティビティ
|
||||
* @property reject 配送するフォロー解除アクティビティ
|
||||
* @property inbox 配送先url
|
||||
*/
|
||||
data class DeliverBlockJobParam(
|
||||
val signer: Long,
|
||||
val block: Block,
|
||||
|
@ -16,6 +24,9 @@ data class DeliverBlockJobParam(
|
|||
val inbox: String
|
||||
)
|
||||
|
||||
/**
|
||||
* ブロックアクティビティ配送のジョブ
|
||||
*/
|
||||
@Component
|
||||
class DeliverBlockJob(@Qualifier("activitypub") private val objectMapper: ObjectMapper) :
|
||||
HideoutJob<DeliverBlockJobParam, DeliverBlockJob>("DeliverBlockJob") {
|
||||
|
|
|
@ -1,6 +1,25 @@
|
|||
package dev.usbharu.hideout.core.service.block
|
||||
|
||||
/**
|
||||
* ブロックに関する処理を行います
|
||||
*
|
||||
*/
|
||||
interface BlockService {
|
||||
/**
|
||||
* ブロックします
|
||||
* 実装はリモートユーザーへのブロックの場合ブロックアクティビティを配送するべきです。
|
||||
*
|
||||
* @param userId ブロックの動作を行ったユーザーid
|
||||
* @param target ブロック対象のユーザーid
|
||||
*/
|
||||
suspend fun block(userId: Long, target: Long)
|
||||
|
||||
/**
|
||||
* ブロックを解除します
|
||||
* 実装はリモートユーザーへのブロック解除の場合Undo Blockアクティビティを配送するべきです
|
||||
*
|
||||
* @param userId ブロック解除の動作を行ったユーザーid
|
||||
* @param target ブロック解除の対象のユーザーid
|
||||
*/
|
||||
suspend fun unblock(userId: Long, target: Long)
|
||||
}
|
||||
|
|
|
@ -35,6 +35,14 @@ interface AccountApiService {
|
|||
suspend fun follow(userid: Long, followeeId: Long): Relationship
|
||||
suspend fun account(id: Long): Account
|
||||
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
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue