in space-slack-sync/src/main/kotlin/org/jetbrains/spaceSlackSync/slack/SlackMessageEvent.kt [26:65]
suspend fun processMessageEvent(requestBodyJson: JsonElement, requestBody: String) {
if (isMessagePostedByThisApp(requestBodyJson)) {
log.debug("SKIP message from Slack: Message was posted by this app")
return
}
val slackMessageEvent = getSlackMessageEvent(requestBodyJson, requestBody) ?: return // reason is logged inside
withSlackEventLogContext(slackMessageEvent) {
val context = getContext(slackMessageEvent) ?: return@withSlackEventLogContext // reason is logged inside
withSyncedChannelLogContext(context.syncedChannel) {
when (slackMessageEvent) {
is SlackMessageEvent.MessageCreated -> {
log.debug("NEW message from Slack")
context.processNewMessage(slackMessageEvent)
}
is SlackMessageEvent.MessageUpdated -> {
log.debug("UPDATED message from Slack")
context.processEditedMessage(slackMessageEvent)
}
is SlackMessageEvent.MessageDeleted -> {
log.debug("DELETED message from Slack")
context.processDeletedMessage(slackMessageEvent)
}
is SlackMessageEvent.ChannelJoin -> {
log.debug("CHANNEL JOIN message from Slack")
context.processChannelJoin(slackMessageEvent)
}
is SlackMessageEvent.ChannelLeave -> {
log.debug("CHANNEL LEAVE message from Slack")
context.processChannelLeave(slackMessageEvent)
}
}
}
}
}