From b5f6c60e056970747a412ad8af71e2c4d1b4b008 Mon Sep 17 00:00:00 2001 From: usbharu <64310155+usbharu@users.noreply.github.com> Date: Sat, 29 Apr 2023 17:49:29 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20Create=E3=82=A2=E3=82=AF=E3=83=86?= =?UTF-8?q?=E3=82=A3=E3=83=93=E3=83=86=E3=82=A3=E3=81=ABactor=E3=82=92?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dev/usbharu/hideout/domain/model/ap/Create.kt | 11 ++++++++++- .../dev/usbharu/hideout/domain/model/ap/Object.kt | 15 +++++++++++---- .../activitypub/ActivityPubNoteServiceImpl.kt | 3 ++- 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/dev/usbharu/hideout/domain/model/ap/Create.kt b/src/main/kotlin/dev/usbharu/hideout/domain/model/ap/Create.kt index 46f89ec4..4739176a 100644 --- a/src/main/kotlin/dev/usbharu/hideout/domain/model/ap/Create.kt +++ b/src/main/kotlin/dev/usbharu/hideout/domain/model/ap/Create.kt @@ -4,7 +4,16 @@ open class Create : Object { var `object`: Object? = null protected constructor() : super() - constructor(type: List = emptyList(), name: String, `object`: Object?) : super(add(type, "Create"), name) { + constructor( + type: List = emptyList(), + name: String? = null, + `object`: Object?, + actor: String? = null + ) : super( + add(type, "Create"), + name, + actor + ) { this.`object` = `object` } diff --git a/src/main/kotlin/dev/usbharu/hideout/domain/model/ap/Object.kt b/src/main/kotlin/dev/usbharu/hideout/domain/model/ap/Object.kt index e13d3eb5..efcaedf3 100644 --- a/src/main/kotlin/dev/usbharu/hideout/domain/model/ap/Object.kt +++ b/src/main/kotlin/dev/usbharu/hideout/domain/model/ap/Object.kt @@ -9,9 +9,10 @@ open class Object : JsonLd { @JsonSerialize(using = TypeSerializer::class) private var type: List = emptyList() var name: String? = null + var actor: String? = null protected constructor() - constructor(type: List, name: String) : super() { + constructor(type: List, name: String? = null,actor:String? = null) : super() { this.type = type this.name = name } @@ -25,22 +26,28 @@ open class Object : JsonLd { } } + + override fun equals(other: Any?): Boolean { if (this === other) return true if (other !is Object) return false + if (!super.equals(other)) return false if (type != other.type) return false - return name == other.name + if (name != other.name) return false + return actor == other.actor } override fun hashCode(): Int { - var result = type.hashCode() + var result = super.hashCode() + result = 31 * result + type.hashCode() result = 31 * result + (name?.hashCode() ?: 0) + result = 31 * result + (actor?.hashCode() ?: 0) return result } override fun toString(): String { - return "Object(type=$type, name=$name) ${super.toString()}" + return "Object(type=$type, name=$name, actor=$actor) ${super.toString()}" } diff --git a/src/main/kotlin/dev/usbharu/hideout/service/activitypub/ActivityPubNoteServiceImpl.kt b/src/main/kotlin/dev/usbharu/hideout/service/activitypub/ActivityPubNoteServiceImpl.kt index bca90430..80f0666b 100644 --- a/src/main/kotlin/dev/usbharu/hideout/service/activitypub/ActivityPubNoteServiceImpl.kt +++ b/src/main/kotlin/dev/usbharu/hideout/service/activitypub/ActivityPubNoteServiceImpl.kt @@ -54,7 +54,8 @@ class ActivityPubNoteServiceImpl( username = "$actor#pubkey", jsonLd = Create( name = "Create Note", - `object` = note + `object` = note, + actor = note.attributedTo ) ) }