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 ) ) }