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