diff --git a/src/main/kotlin/dev/usbharu/hideout/domain/model/ActivityPubResponse.kt b/src/main/kotlin/dev/usbharu/hideout/domain/model/ActivityPubResponse.kt new file mode 100644 index 00000000..8e487b7c --- /dev/null +++ b/src/main/kotlin/dev/usbharu/hideout/domain/model/ActivityPubResponse.kt @@ -0,0 +1,5 @@ +package dev.usbharu.hideout.domain.model + +import io.ktor.http.* + +data class ActivityPubResponse(val httpStatusCode: HttpStatusCode, val message:String) diff --git a/src/main/kotlin/dev/usbharu/hideout/routing/activitypub/InboxRouting.kt b/src/main/kotlin/dev/usbharu/hideout/routing/activitypub/InboxRouting.kt index fc08e892..079ddb98 100644 --- a/src/main/kotlin/dev/usbharu/hideout/routing/activitypub/InboxRouting.kt +++ b/src/main/kotlin/dev/usbharu/hideout/routing/activitypub/InboxRouting.kt @@ -20,8 +20,12 @@ fun Routing.inbox(httpSignatureVerifyService: HttpSignatureVerifyService,activit } val json = call.receiveText() val activityTypes = activityPubService.parseActivity(json) - activityPubService.processActivity(json,activityTypes) - call.respond(HttpStatusCode.NotImplemented) + val response = activityPubService.processActivity(json, activityTypes) + return@post if (response != null) { + call.respond(response.httpStatusCode, response.message) + }else { + call.respond(HttpStatusCode.InternalServerError) + } } } route("/users/{name}/inbox"){ diff --git a/src/main/kotlin/dev/usbharu/hideout/service/activitypub/ActivityPubService.kt b/src/main/kotlin/dev/usbharu/hideout/service/activitypub/ActivityPubService.kt index 070046a3..7723ca1b 100644 --- a/src/main/kotlin/dev/usbharu/hideout/service/activitypub/ActivityPubService.kt +++ b/src/main/kotlin/dev/usbharu/hideout/service/activitypub/ActivityPubService.kt @@ -1,9 +1,11 @@ package dev.usbharu.hideout.service.activitypub +import dev.usbharu.hideout.domain.model.ActivityPubResponse + interface ActivityPubService { fun parseActivity(json:String): ActivityType - fun processActivity(json:String, type: ActivityType) + fun processActivity(json:String, type: ActivityType):ActivityPubResponse? } enum class ActivityType { diff --git a/src/main/kotlin/dev/usbharu/hideout/service/activitypub/ActivityPubServiceImpl.kt b/src/main/kotlin/dev/usbharu/hideout/service/activitypub/ActivityPubServiceImpl.kt index 9e238c7f..a9ea3b7f 100644 --- a/src/main/kotlin/dev/usbharu/hideout/service/activitypub/ActivityPubServiceImpl.kt +++ b/src/main/kotlin/dev/usbharu/hideout/service/activitypub/ActivityPubServiceImpl.kt @@ -2,6 +2,7 @@ package dev.usbharu.hideout.service.activitypub import com.fasterxml.jackson.databind.JsonNode import dev.usbharu.hideout.config.Config +import dev.usbharu.hideout.domain.model.ActivityPubResponse import dev.usbharu.hideout.exception.JsonParseException class ActivityPubServiceImpl : ActivityPubService { @@ -19,7 +20,7 @@ class ActivityPubServiceImpl : ActivityPubService { return ActivityType.values().first { it.name.equals(type.asText(), true) } } - override fun processActivity(json: String, type: ActivityType) { + override fun processActivity(json: String, type: ActivityType): ActivityPubResponse? { when (type) { ActivityType.Accept -> TODO() ActivityType.Add -> TODO() diff --git a/src/test/kotlin/dev/usbharu/hideout/routing/activitypub/UsersAPTest.kt b/src/test/kotlin/dev/usbharu/hideout/routing/activitypub/UsersAPTest.kt index 7eca6e24..fee20a11 100644 --- a/src/test/kotlin/dev/usbharu/hideout/routing/activitypub/UsersAPTest.kt +++ b/src/test/kotlin/dev/usbharu/hideout/routing/activitypub/UsersAPTest.kt @@ -1,5 +1,6 @@ package dev.usbharu.hideout.routing.activitypub +import dev.usbharu.hideout.domain.model.ActivityPubResponse import dev.usbharu.hideout.plugins.configureRouting import dev.usbharu.hideout.service.activitypub.ActivityPubService import dev.usbharu.hideout.service.activitypub.ActivityType @@ -30,7 +31,7 @@ class UsersAPTest { TODO("Not yet implemented") } - override fun processActivity(json: String, type: ActivityType) { + override fun processActivity(json: String, type: ActivityType): ActivityPubResponse? { TODO("Not yet implemented") } })