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 }