72 lines
1.5 KiB
Go
72 lines
1.5 KiB
Go
package line
|
|
|
|
import "errors"
|
|
|
|
// Message -
|
|
type Message struct {
|
|
Type string `json:"type"`
|
|
}
|
|
|
|
// TextMessage -
|
|
type TextMessage struct {
|
|
Message
|
|
Text string `json:"text"`
|
|
}
|
|
|
|
// ImageMessage -
|
|
type ImageMessage struct {
|
|
Message
|
|
OriginalContentURL string `json:"originalContentUrl"`
|
|
PreviewImageURL string `json:"previewImageUrl"`
|
|
}
|
|
|
|
// VideoMessage -
|
|
type VideoMessage struct {
|
|
Message
|
|
OriginalContentURL string `json:"originalContentUrl"`
|
|
PreviewImageURL string `json:"previewImageUrl"`
|
|
}
|
|
|
|
// FlexMessage -
|
|
type FlexMessage struct {
|
|
Message
|
|
AltText string `json:"altText"`
|
|
Contents interface{} `json:"contents"`
|
|
}
|
|
|
|
// NewTextMessage -
|
|
func NewTextMessage(text string) (msg TextMessage, err error) {
|
|
msg = TextMessage{}
|
|
if len(text) == 0 {
|
|
return msg, errors.New("message is empty")
|
|
}
|
|
|
|
msg.Type = "text"
|
|
msg.Text = text
|
|
return
|
|
}
|
|
|
|
// NewImageMessage -
|
|
func NewImageMessage(originalURL, previewURL string) (msg ImageMessage, err error) {
|
|
msg = ImageMessage{}
|
|
if len(originalURL) == 0 || len(previewURL) == 0 {
|
|
return msg, errors.New("original url or preview url is empty")
|
|
}
|
|
msg.Type = "image"
|
|
msg.OriginalContentURL = originalURL
|
|
msg.PreviewImageURL = previewURL
|
|
return
|
|
}
|
|
|
|
// NewVideoMessage -
|
|
func NewVideoMessage(originalURL, previewURL string) (msg VideoMessage, err error) {
|
|
msg = VideoMessage{}
|
|
if len(originalURL) == 0 || len(previewURL) == 0 {
|
|
return msg, errors.New("original url or preview url is empty")
|
|
}
|
|
msg.Type = "video"
|
|
msg.OriginalContentURL = originalURL
|
|
msg.PreviewImageURL = previewURL
|
|
return
|
|
}
|