in src/main/kotlin/org/jetbrains/slackUnfurls/spaceUnfurlsInSlack/SpaceUnfurlsInSlack.kt [104:134]
suspend fun onSlackInteractive(call: ApplicationCall) {
val payloadJson = call.receiveParameters()["payload"]
?: run {
call.respondError(
HttpStatusCode.BadRequest,
log,
"Expected form parameter payload in interactive payload request body"
)
return
}
val payload = gson.fromJson(payloadJson, BlockActionPayload::class.java)
val action = payload.actions.singleOrNull() ?: run {
call.respondError(HttpStatusCode.BadRequest, log, "Expected a single action in block_actions payload")
return
}
when (action.actionId) {
AuthAction.Authenticate.id, AuthAction.NotNow.id -> {
ActionResponseSender(Slack.getInstance()).send(
payload.responseUrl,
ActionResponse.builder().deleteOriginal(true).build()
)
}
AuthAction.Never.id -> {
disableUnfurling(payload, spaceOrgId = action.value)
}
}
call.respond(HttpStatusCode.OK)
}