Add ability to send reactions

This commit is contained in:
Sam
2019-05-29 23:53:50 -04:00
parent 8e3274d6f3
commit f61f08daf4
2 changed files with 37 additions and 2 deletions

View File

@ -13,6 +13,8 @@ type Keybase struct {
type keybase interface { type keybase interface {
ChatSendText(user string, message ...string) (chatOutResultResult, error) ChatSendText(user string, message ...string) (chatOutResultResult, error)
ChatSendTextTeam(team, channel, message string) (chatOutResultResult, error) ChatSendTextTeam(team, channel, message string) (chatOutResultResult, error)
ChatSendReaction(user, reaction string, messageId int) (chatOutResultResult, error)
ChatSendReactionTeam(team, channel, reaction string, messageId int) (chatOutResultResult, error)
ChatList() ([]chatOutResultConversations, error) ChatList() ([]chatOutResultConversations, error)
LoggedIn() bool LoggedIn() bool
Username() string Username() string

View File

@ -21,6 +21,7 @@ type chatOutMessage struct {
} }
type chatOutOptions struct { type chatOutOptions struct {
Channel chatOutChannel `json:"channel"` Channel chatOutChannel `json:"channel"`
MessageID int `json:"message_id"`
Message chatOutMessage `json:"message"` Message chatOutMessage `json:"message"`
} }
type chatOutParams struct { type chatOutParams struct {
@ -110,6 +111,38 @@ func (k Keybase) ChatSendTextTeam(team, channel string, message ...string) (chat
return r.Result, nil return r.Result, nil
} }
// ChatSendReaction() sends a reaction to a user's message.
func (k Keybase) ChatSendReaction(user, reaction string, messageId int) (chatOutResultResult, error) {
m := chatOut{}
m.Method = "reaction"
m.Params.Options.Channel.Name = user
m.Params.Options.MessageID = messageId
m.Params.Options.Message.Body = reaction
r, err := chatAPIOut(k.path, m)
if err != nil {
return chatOutResultResult{}, err
}
return r.Result, nil
}
// ChatSendReactionTeam() sends a reaction to a message on a team.
func (k Keybase) ChatSendReactionTeam(team, channel, reaction string, messageId int) (chatOutResultResult, error) {
m := chatOut{}
m.Method = "reaction"
m.Params.Options.Channel.Name = team
m.Params.Options.Channel.MembersType = "team"
m.Params.Options.Channel.TopicName = channel
m.Params.Options.MessageID = messageId
m.Params.Options.Message.Body = reaction
r, err := chatAPIOut(k.path, m)
if err != nil {
return chatOutResultResult{}, err
}
return r.Result, nil
}
// ChatList() returns a list of all conversations. // ChatList() returns a list of all conversations.
func (k Keybase) ChatList() ([]chatOutResultConversations, error) { func (k Keybase) ChatList() ([]chatOutResultConversations, error) {
m := chatOut{} m := chatOut{}