diff --git a/src/main/kotlin/dev/usbharu/hideout/routing/activitypub/InboxRouting.kt b/src/main/kotlin/dev/usbharu/hideout/routing/activitypub/InboxRouting.kt new file mode 100644 index 00000000..d82ea289 --- /dev/null +++ b/src/main/kotlin/dev/usbharu/hideout/routing/activitypub/InboxRouting.kt @@ -0,0 +1,25 @@ +package dev.usbharu.hideout.routing.activitypub + +import io.ktor.server.application.* +import io.ktor.server.routing.* + +fun Routing.inbox(){ + + route("/inbox") { + get { + + } + post { + + } + } + route("/users/{name}/inbox"){ + get { + + } + post { + + } + } + +} diff --git a/src/main/kotlin/dev/usbharu/hideout/routing/activitypub/OutboxRouting.kt b/src/main/kotlin/dev/usbharu/hideout/routing/activitypub/OutboxRouting.kt new file mode 100644 index 00000000..cc8b133d --- /dev/null +++ b/src/main/kotlin/dev/usbharu/hideout/routing/activitypub/OutboxRouting.kt @@ -0,0 +1,25 @@ +package dev.usbharu.hideout.routing.activitypub + +import io.ktor.server.application.* +import io.ktor.server.routing.* + +fun Routing.outbox() { + + route("/outbox") { + get { + + } + post { + + } + } + route("/users/{name}/outbox"){ + get { + + } + post { + + } + } + +} diff --git a/src/main/kotlin/dev/usbharu/hideout/routing/activitypub/UserRouting.kt b/src/main/kotlin/dev/usbharu/hideout/routing/activitypub/UserRouting.kt new file mode 100644 index 00000000..a071c5f7 --- /dev/null +++ b/src/main/kotlin/dev/usbharu/hideout/routing/activitypub/UserRouting.kt @@ -0,0 +1,25 @@ +package dev.usbharu.hideout.routing.activitypub + +import dev.usbharu.hideout.util.HttpUtil.Activity +import io.ktor.http.* +import io.ktor.server.application.* +import io.ktor.server.request.* +import io.ktor.server.routing.* + +fun Routing.users(){ + route("/users/{name}"){ + createChild(ContentTypeRouteSelector(ContentType.Application.Activity)).handle { + } + } +} + +class ContentTypeRouteSelector(private val contentType: ContentType) : RouteSelector() { + override fun evaluate(context: RoutingResolveContext, segmentIndex: Int): RouteSelectorEvaluation { + return if (context.call.request.contentType() == contentType) { + RouteSelectorEvaluation.Constant + } else { + RouteSelectorEvaluation.Failed + } + } + +}