summaryrefslogtreecommitdiffstats
path: root/bridge/discord/transmitter/utils.go
diff options
context:
space:
mode:
Diffstat (limited to 'bridge/discord/transmitter/utils.go')
-rw-r--r--bridge/discord/transmitter/utils.go32
1 files changed, 32 insertions, 0 deletions
diff --git a/bridge/discord/transmitter/utils.go b/bridge/discord/transmitter/utils.go
new file mode 100644
index 00000000..f42e81eb
--- /dev/null
+++ b/bridge/discord/transmitter/utils.go
@@ -0,0 +1,32 @@
+package transmitter
+
+import (
+ "github.com/matterbridge/discordgo"
+)
+
+// isDiscordPermissionError returns false for nil, and true if a Discord RESTError with code discordgo.ErrorCodeMissionPermissions
+func isDiscordPermissionError(err error) bool {
+ if err == nil {
+ return false
+ }
+
+ restErr, ok := err.(*discordgo.RESTError)
+ if !ok {
+ return false
+ }
+
+ return restErr.Message != nil && restErr.Message.Code == discordgo.ErrCodeMissingPermissions
+}
+
+// getDiscordUserID gets own user ID from state, and fallback on API request
+func getDiscordUserID(session *discordgo.Session) (string, error) {
+ if user := session.State.User; user != nil {
+ return user.ID, nil
+ }
+
+ user, err := session.User("@me")
+ if err != nil {
+ return "", err
+ }
+ return user.ID, nil
+}