From e3da4b817e24f11d3130e442ef896801094a7157 Mon Sep 17 00:00:00 2001 From: Allan Galarza Date: Fri, 7 Jun 2024 04:50:21 -0700 Subject: [PATCH] Change extension name sentry context to a mapping (#295) * Change extension name sentry context to a mapping * Move extension name inside command context key in Sentry - Also add group and parent commands to Slash commands * merge slash command parent and group names into single key --- .../application/message/MessageCommand.kt | 7 ++---- .../application/slash/SlashCommand.kt | 23 ++++++++++++++----- .../commands/application/user/UserCommand.kt | 7 ++---- .../extensions/commands/chat/ChatCommand.kt | 7 ++---- 4 files changed, 23 insertions(+), 21 deletions(-) diff --git a/kord-extensions/src/main/kotlin/com/kotlindiscord/kord/extensions/commands/application/message/MessageCommand.kt b/kord-extensions/src/main/kotlin/com/kotlindiscord/kord/extensions/commands/application/message/MessageCommand.kt index 26416db47d..ee9eaf1563 100644 --- a/kord-extensions/src/main/kotlin/com/kotlindiscord/kord/extensions/commands/application/message/MessageCommand.kt +++ b/kord-extensions/src/main/kotlin/com/kotlindiscord/kord/extensions/commands/application/message/MessageCommand.kt @@ -70,14 +70,11 @@ public abstract class MessageCommand, M : ModalF mapOf( "name" to name, - "type" to "message" + "type" to "message", + "extension" to extension.name, ) ) - context.sentry.context( - "extension", extension.name - ) - context.sentry.breadcrumb(BreadcrumbType.User) { category = "command.application.message" message = "Message command \"$name\" called." diff --git a/kord-extensions/src/main/kotlin/com/kotlindiscord/kord/extensions/commands/application/slash/SlashCommand.kt b/kord-extensions/src/main/kotlin/com/kotlindiscord/kord/extensions/commands/application/slash/SlashCommand.kt index ffdec6f281..5d4c5492f7 100644 --- a/kord-extensions/src/main/kotlin/com/kotlindiscord/kord/extensions/commands/application/slash/SlashCommand.kt +++ b/kord-extensions/src/main/kotlin/com/kotlindiscord/kord/extensions/commands/application/slash/SlashCommand.kt @@ -188,19 +188,30 @@ public abstract class SlashCommand, A : Argumen /** If enabled, adds the initial Sentry breadcrumb to the given context. **/ public open suspend fun firstSentryBreadcrumb(context: C, commandObj: SlashCommand<*, *, *>) { if (sentry.enabled) { + val fullName = buildString { + parentCommand?.let { + append(it.name) + append(" ") + } + + parentGroup?.let { + append(it.name) + append(" ") + } + + append(name) + } + context.sentry.context( "command", mapOf( - "name" to name, - "type" to "slash" + "name" to fullName, + "type" to "slash", + "extension" to extension.name ) ) - context.sentry.context( - "extension", extension.name - ) - context.sentry.breadcrumb(BreadcrumbType.User) { category = "command.application.slash" message = "Slash command \"${commandObj.name}\" called." diff --git a/kord-extensions/src/main/kotlin/com/kotlindiscord/kord/extensions/commands/application/user/UserCommand.kt b/kord-extensions/src/main/kotlin/com/kotlindiscord/kord/extensions/commands/application/user/UserCommand.kt index 54df9d120d..0d0219fae3 100644 --- a/kord-extensions/src/main/kotlin/com/kotlindiscord/kord/extensions/commands/application/user/UserCommand.kt +++ b/kord-extensions/src/main/kotlin/com/kotlindiscord/kord/extensions/commands/application/user/UserCommand.kt @@ -70,14 +70,11 @@ public abstract class UserCommand, M : ModalForm>( mapOf( "name" to name, - "type" to "user" + "type" to "user", + "extension" to extension.name, ) ) - context.sentry.context( - "extension", extension.name - ) - context.sentry.breadcrumb(BreadcrumbType.User) { category = "command.application.user" message = "User command \"$name\" called." diff --git a/kord-extensions/src/main/kotlin/com/kotlindiscord/kord/extensions/commands/chat/ChatCommand.kt b/kord-extensions/src/main/kotlin/com/kotlindiscord/kord/extensions/commands/chat/ChatCommand.kt index 52fe892708..66f163b9ed 100644 --- a/kord-extensions/src/main/kotlin/com/kotlindiscord/kord/extensions/commands/chat/ChatCommand.kt +++ b/kord-extensions/src/main/kotlin/com/kotlindiscord/kord/extensions/commands/chat/ChatCommand.kt @@ -385,14 +385,11 @@ public open class ChatCommand( mapOf( "name" to translatedName, - "type" to "chat" + "type" to "chat", + "extension" to extension.name, ) ) - context.sentry.context( - "extension", extension.name - ) - context.sentry.breadcrumb(BreadcrumbType.User) { category = "command.chat" message = "Command \"$name\" called."