mirror of https://github.com/usbharu/Hideout.git
feat: Announceを追加
This commit is contained in:
parent
f011e43379
commit
8e516420cf
|
@ -0,0 +1,18 @@
|
|||
package dev.usbharu.hideout.activitypub.domain.model
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonCreator
|
||||
import com.fasterxml.jackson.annotation.JsonProperty
|
||||
import dev.usbharu.hideout.activitypub.domain.model.objects.Object
|
||||
|
||||
open class Announce @JsonCreator constructor(
|
||||
type: List<String> = emptyList(),
|
||||
@JsonProperty("object")
|
||||
val apObject: String,
|
||||
override val actor: String,
|
||||
override val id: String,
|
||||
val published: String,
|
||||
val to: List<String> = emptyList(),
|
||||
val cc: List<String> = emptyList()
|
||||
) : Object(
|
||||
type = add(type, "Announce")
|
||||
), HasActor, HasId
|
|
@ -0,0 +1,21 @@
|
|||
package dev.usbharu.hideout.activitypub.service.activity.announce
|
||||
|
||||
import dev.usbharu.hideout.activitypub.domain.model.Announce
|
||||
import dev.usbharu.hideout.activitypub.service.common.AbstractActivityPubProcessor
|
||||
import dev.usbharu.hideout.activitypub.service.common.ActivityPubProcessContext
|
||||
import dev.usbharu.hideout.activitypub.service.common.ActivityType
|
||||
import dev.usbharu.hideout.activitypub.service.objects.note.APNoteService
|
||||
import dev.usbharu.hideout.application.external.Transaction
|
||||
import org.springframework.stereotype.Service
|
||||
|
||||
@Service
|
||||
class ApAnnounceProcessor(transaction: Transaction,private val apNoteService:APNoteService) :
|
||||
AbstractActivityPubProcessor<Announce>(transaction) {
|
||||
override suspend fun internalProcess(activity: ActivityPubProcessContext<Announce>) {
|
||||
apNoteService.fetchAnnounce(activity.activity)
|
||||
}
|
||||
|
||||
override fun isSupported(activityType: ActivityType): Boolean = ActivityType.Announce == activityType
|
||||
|
||||
override fun type(): Class<Announce> = Announce::class.java
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
package dev.usbharu.hideout.activitypub.domain.model
|
||||
|
||||
import com.fasterxml.jackson.module.kotlin.readValue
|
||||
import dev.usbharu.hideout.application.config.ActivityPubConfig
|
||||
import org.junit.jupiter.api.Assertions.*
|
||||
import org.junit.jupiter.api.Test
|
||||
|
||||
class AnnounceTest{
|
||||
@Test
|
||||
fun mastodonのjsonをデシリアライズできる() {
|
||||
//language=JSON
|
||||
val json = """{
|
||||
"@context": "https://www.w3.org/ns/activitystreams",
|
||||
"id": "https://kb.usbharu.dev/users/usbharu/statuses/111859915842276344/activity",
|
||||
"type": "Announce",
|
||||
"actor": "https://kb.usbharu.dev/users/usbharu",
|
||||
"published": "2024-02-02T04:07:40Z",
|
||||
"to": [
|
||||
"https://kb.usbharu.dev/users/usbharu/followers"
|
||||
],
|
||||
"cc": [
|
||||
"https://kb.usbharu.dev/users/usbharu"
|
||||
],
|
||||
"object": "https://kb.usbharu.dev/users/usbharu/statuses/111850484548963326"
|
||||
}"""
|
||||
|
||||
val objectMapper = ActivityPubConfig().objectMapper()
|
||||
|
||||
val readValue = objectMapper.readValue<Announce>(json)
|
||||
|
||||
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue