This repository has been archived on 2023-07-05. You can view files and clone it, but cannot push or open issues or pull requests.
clessy/tg/command.go

69 lines
2.0 KiB
Go
Raw Normal View History

2016-02-08 13:47:10 +00:00
package tg
// BrokerUpdateType distinguishes update types coming from the broker
type BrokerUpdateType string
2016-02-08 16:52:13 +00:00
const (
// BMessage is a message update (mostly webhook updates)
BMessage BrokerUpdateType = "message"
// BFile is a file retrieval response update
BFile BrokerUpdateType = "file"
2016-02-20 20:40:24 +00:00
// BError is an error the broker occurred while fulfilling a request
BError BrokerUpdateType = "error"
2016-02-08 16:52:13 +00:00
)
// BrokerUpdate is what is sent by the broker as update
type BrokerUpdate struct {
Type BrokerUpdateType
2016-02-20 20:40:24 +00:00
Callback *int `json:",omitempty"`
Error *string `json:",omitempty"`
Message *APIMessage `json:",omitempty"`
Bytes *string `json:",omitempty"`
}
// ClientCommandType distinguishes requests sent by clients to the broker
type ClientCommandType string
const (
// CmdSendTextMessage requests the broker to send a text message to a chat
CmdSendTextMessage ClientCommandType = "sendText"
// CmdSendPhoto requests the broker to send a photo to a chat
CmdSendPhoto ClientCommandType = "sendPhoto"
// CmdGetFile requests the broker to get a file from Telegram
CmdGetFile ClientCommandType = "getFile"
)
// ClientTextMessageData is the required data for a CmdSendTextMessage request
2016-02-09 10:01:05 +00:00
type ClientTextMessageData struct {
2016-02-09 10:33:38 +00:00
ChatID int
Text string
2016-02-20 20:40:24 +00:00
ReplyID *int `json:",omitempty"`
2016-02-08 16:52:13 +00:00
}
// ClientPhotoData is the required data for a CmdSendPhoto request
type ClientPhotoData struct {
2016-02-20 21:49:50 +00:00
ChatID int
Bytes string
Filename string
Caption *string `json:",omitempty"`
ReplyID *int `json:",omitempty"`
}
// FileRequestData is the required data for a CmdGetFile request
type FileRequestData struct {
2016-02-20 20:40:24 +00:00
FileID string
}
// ClientCommand is a request sent by clients to the broker
2016-02-08 13:47:10 +00:00
type ClientCommand struct {
2016-02-09 10:01:05 +00:00
Type ClientCommandType
2016-02-20 20:40:24 +00:00
TextMessageData *ClientTextMessageData `json:",omitempty"`
PhotoData *ClientPhotoData `json:",omitempty"`
FileRequestData *FileRequestData `json:",omitempty"`
Callback *int `json:",omitempty"`
2016-02-08 13:47:10 +00:00
}