kotlin/space-events/src/main/kotlin/org/webhooks/Routing.kt [23:47]: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - val ktorRequestAdapter = object : RequestAdapter { override suspend fun receiveText() = call.receiveText() override fun getHeader(headerName: String) = call.request.header(headerName) override suspend fun respond(httpStatusCode: Int, body: String) = call.respond(HttpStatusCode.fromValue(httpStatusCode), body) } Space.processPayload(ktorRequestAdapter, spaceHttpClient, AppInstanceStorage) { payload -> when (payload) { is InitPayload -> { setupWebhooks() requestPermissions() } is WebhookRequestPayload -> { // process webhook asynchronously, respond to Space immediately launch { processWebhookEvent(payload) } } } SpaceHttpResponse.RespondWithOk - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - kotlin/sync-api/src/main/kotlin/com/example/Routes.kt [67:91]: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - val ktorRequestAdapter = object : RequestAdapter { override suspend fun receiveText() = call.receiveText() override fun getHeader(headerName: String) = call.request.header(headerName) override suspend fun respond(httpStatusCode: Int, body: String) = call.respond(HttpStatusCode.fromValue(httpStatusCode), body) } Space.processPayload(ktorRequestAdapter, spaceHttpClient, AppInstanceStorage) { payload -> when (payload) { is InitPayload -> { setupWebhooks() requestPermissions() } is WebhookRequestPayload -> { // process webhook asynchronously, respond to Space immediately launch { processWebhookEvent(payload) } } } SpaceHttpResponse.RespondWithOk - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -