tamtam/message.go
Alexander Kiryukhin 7a749a3d0c Fix description
Fix int64 ids
2019-11-20 15:14:54 +03:00

82 lines
2.3 KiB
Go

package tamtam
import "github.com/neonxp/tamtam/schemes"
type Message struct {
userID int64
chatID int64
message *schemes.NewMessageBody
}
func NewMessage() *Message {
return &Message{userID: 0, chatID: 0, message: &schemes.NewMessageBody{Attachments: []interface{}{}}}
}
func (m *Message) SetUser(userID int64) *Message {
m.userID = userID
return m
}
func (m *Message) SetChat(chatID int64) *Message {
m.chatID = chatID
return m
}
func (m *Message) SetText(text string) *Message {
m.message.Text = text
return m
}
func (m *Message) SetNotify(notify bool) *Message {
m.message.Notify = notify
return m
}
func (m *Message) AddKeyboard(keyboard *Keyboard) *Message {
m.message.Attachments = append(m.message.Attachments, schemes.NewInlineKeyboardAttachmentRequest(keyboard.Build()))
return m
}
func (m *Message) AddPhoto(photo *schemes.PhotoTokens) *Message {
m.message.Attachments = append(m.message.Attachments, schemes.NewPhotoAttachmentRequest(schemes.PhotoAttachmentRequestPayload{
Photos: photo.Photos,
}))
return m
}
func (m *Message) AddAudio(audio *schemes.UploadedInfo) *Message {
m.message.Attachments = append(m.message.Attachments, schemes.NewAudioAttachmentRequest(*audio))
return m
}
func (m *Message) AddVideo(video *schemes.UploadedInfo) *Message {
m.message.Attachments = append(m.message.Attachments, schemes.NewVideoAttachmentRequest(*video))
return m
}
func (m *Message) AddFile(file *schemes.UploadedInfo) *Message {
m.message.Attachments = append(m.message.Attachments, schemes.NewFileAttachmentRequest(*file))
return m
}
func (m *Message) AddLocation(lat float64, lon float64) *Message {
m.message.Attachments = append(m.message.Attachments, schemes.NewLocationAttachmentRequest(lat, lon))
return m
}
func (m *Message) AddContact(name string, contactID int64, vcfInfo string, vcfPhone string) *Message {
m.message.Attachments = append(m.message.Attachments, schemes.NewContactAttachmentRequest(schemes.ContactAttachmentRequestPayload{
Name: name,
ContactId: contactID,
VcfInfo: vcfInfo,
VcfPhone: vcfPhone,
}))
return m
}
func (m *Message) AddSticker(code string) *Message {
m.message.Attachments = append(m.message.Attachments, schemes.NewStickerAttachmentRequest(schemes.StickerAttachmentRequestPayload{
Code: code,
}))
return m
}