An outgoing webhook slackbot written in go
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

64 lines
2.0 KiB

package slack
import (
"net/http"
"strconv"
)
type APIRequest struct {
Token string
TeamId string
TeamDomain string
ChannelId string
ChannelName string
Timestamp float64
UserId string
UserName string
Text string
TriggerWord string
}
func ParseAPIRequest(httpReq *http.Request) (response APIRequest) {
response.Token = httpReq.PostFormValue("token")
response.TeamId = httpReq.PostFormValue("team_id")
response.TeamDomain = httpReq.PostFormValue("team_domain")
response.ChannelId = httpReq.PostFormValue("channel_id")
response.ChannelName = httpReq.PostFormValue("channel_name")
ts := httpReq.PostFormValue("timestamp")
response.Timestamp, _ = strconv.ParseFloat(ts, 32)
response.UserId = httpReq.PostFormValue("user_id")
response.UserName = httpReq.PostFormValue("user_name")
response.Text = httpReq.PostFormValue("text")
response.TriggerWord = httpReq.PostFormValue("trigger_word")
return response
}
type APIResponse struct {
Text string `json:"text,omitempty"`
Attachments []Attachment `json:"attachments,omitempty"`
UserName string `json:"user_name,omitempty"`
IconEmoji string `json:"icon_emoji,omitempty"`
Channel string `json:"channel,omitempty"`
Markdown bool `json:"mrkdwn,omitempty"`
}
type Attachment struct {
AuthorIcon string `json:"author_icon,omitempty"`
AuthorLink string `json:"author_link,omitempty"`
AuthorName string `json:"author_name,omitempty"`
Color string `json:"color,omitempty"`
Fallback string `json:"fallback,omitempty"`
Fields []Fields `json:"fields,omitempty"`
ImageUrl string `json:"image_url,omitempty"`
MarkdownIn string `json:"mrkdwn_in,omitempty"`
Pretext string `json:"pretext,omitempty"`
Title string `json:"title,omitempty"`
TitleLink string `json:"title_link,omitempty"`
}
type Fields struct {
Title string `json:"title,omitempty"`
Value string `json:"value,omitempty"`
Short bool `json:"short,omitempty"`
}