func statusToSlack(api *slack.Client, my_name string, channel string, msg string) { params := slack.NewPostMessageParameters() params.Username = my_name params.IconEmoji = ":exclamation:" attachment := slack.Attachment{} attachment.Color = "#ffaa00" attachment.Title = "Alarm Status Update" attachment.Text = msg params.Attachments = []slack.Attachment{attachment} api.PostMessage(channel, "", params) }
func logToSlack(api *slack.Client, my_name string, channel string, msg string, fields []slack.AttachmentField) { params := slack.NewPostMessageParameters() params.Username = my_name params.IconEmoji = ":page_with_curl:" attachment := slack.Attachment{} attachment.Color = "#ffaa00" attachment.Title = "Log Entry" attachment.Text = msg attachment.Fields = fields params.Attachments = []slack.Attachment{attachment} api.PostMessage(channel, "", params) }
func motionToSlack(api *slack.Client, my_name string, channel string, image string, count int) { _, err := http.Get(image) chk(err) params := slack.NewPostMessageParameters() params.Username = my_name params.IconEmoji = ":rotating_light:" attachment := slack.Attachment{} attachment.Color = "#ff0000" attachment.Title = "Motion detected" attachment.Text = fmt.Sprintf("Motion events detected: %d", count) attachment.ImageURL = image params.Attachments = []slack.Attachment{attachment} api.PostMessage(channel, "", params) }
func lightsToSlack(api *slack.Client, my_name string, channel string, image string, level int) { _, err := http.Get(image) chk(err) params := slack.NewPostMessageParameters() params.Username = my_name params.IconEmoji = ":bulb:" attachment := slack.Attachment{} attachment.Color = "#00ff00" attachment.Title = "Lights detected" attachment.Text = fmt.Sprintf("Light level detected: %d", level) attachment.ImageURL = image params.Attachments = []slack.Attachment{attachment} api.PostMessage(channel, "", params) }
func (s *Client) sendMessage(issue *redmine.Issue, channel string) (err error) { params := slackapi.PostMessageParameters{} params.IconURL = botLogo params.Username = "******" fields := make([]slackapi.AttachmentField, 6) var idx int = 3 fields[0] = slackapi.AttachmentField{ Title: "Project", Value: issue.Project.Name, Short: true, } fields[1] = slackapi.AttachmentField{ Title: "Status", Value: issue.Status.Name, Short: true, } fields[2] = slackapi.AttachmentField{ Title: "Author", Value: issue.Author.Name, Short: true, } if issue.AssignedTo != nil { fields[idx] = slackapi.AttachmentField{ Title: "Assigned To", Value: issue.AssignedTo.Name, Short: true, } idx += 1 } if issue.Category != nil { fields[idx] = slackapi.AttachmentField{ Title: "Category", Value: issue.Category.Name, Short: true, } idx += 1 } if issue.Version != nil { fields[idx] = slackapi.AttachmentField{ Title: "Version", Value: issue.Version.Name, Short: true, } } var title string if issue.Tracker != nil { title = fmt.Sprintf("%s #%d: %s", issue.Tracker.Name, issue.Id, issue.Subject) } else { title = fmt.Sprintf("#%d: %s", issue.Id, issue.Subject) } attachment := slackapi.Attachment{ Title: title, TitleLink: s.redmine.GetIssueUrl(issue), Fields: fields, } if s.redmine.IssueIsClosed(issue) { attachment.Color = "good" } else if s.redmine.IssueInHighPriority(issue) { attachment.Color = "danger" } params.Attachments = []slackapi.Attachment{attachment} _, _, err = s.slack.PostMessage(channel, "", params) return err }