From 0a7b47c9a33511b3aac00c58d4768d8fd33e3ecc Mon Sep 17 00:00:00 2001 From: James Page <james@bob.co.za> Date: Fri, 7 Feb 2025 10:01:32 +0200 Subject: [PATCH] #44 - Upload files to Slack channels --- slack_utils/slack_utils.go | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/slack_utils/slack_utils.go b/slack_utils/slack_utils.go index f3ca9ec..fe91578 100644 --- a/slack_utils/slack_utils.go +++ b/slack_utils/slack_utils.go @@ -15,6 +15,18 @@ type SlackField struct { Value any } +type SlackFile struct { + File string + FileSize int + Content string + Filename string + Title string + InitialComment string + ThreadTimestamp string + AltTxt string + SnippetText string +} + type SlackClient struct { Client *slack.Client } @@ -116,6 +128,28 @@ func (s *SlackClient) postMessage(channel string, messageOptions []slack.MsgOpti return messageTimestamp } +func (s *SlackClient) SendFile(channel string, file SlackFile) error { + fileParameters := slack.UploadFileV2Parameters{ + Channel: channel, + File: file.File, + FileSize: file.FileSize, + Content: file.Content, + Filename: file.Filename, + Title: file.Title, + InitialComment: file.InitialComment, + ThreadTimestamp: file.ThreadTimestamp, + AltTxt: file.AltTxt, + SnippetText: file.SnippetText, + } + + _, err := s.Client.UploadFileV2(fileParameters) + if err != nil { + logs.ErrorWithMsg(err, "Error uploading file to slack:") + return err + } + return nil +} + func hasEmoji(message string) bool { emojiRegex := regexp.MustCompile(`:[a-zA-Z0-9_]+:`) return emojiRegex.MatchString(message) -- GitLab