fix reactions api
This commit is contained in:
parent
22e26be57f
commit
ff93bc00ec
3 changed files with 63 additions and 29 deletions
34
v1/client.go
34
v1/client.go
|
@ -592,7 +592,7 @@ func (c *MgClient) MessagesHistory(request SendHistoryMessageRequest) (MessagesR
|
||||||
//
|
//
|
||||||
// client := New("https://message-gateway.url", "cb8ccf05e38a47543ad8477d4999be73bff503ea6")
|
// client := New("https://message-gateway.url", "cb8ccf05e38a47543ad8477d4999be73bff503ea6")
|
||||||
//
|
//
|
||||||
// _, status, err := client.AddMessageReaction(ReactionRequest{
|
// status, err := client.AddMessageReaction(ReactionRequest{
|
||||||
// Channel: 305,
|
// Channel: 305,
|
||||||
// Message: ReactionMessageReference{
|
// Message: ReactionMessageReference{
|
||||||
// ExternalID: "uid_1",
|
// ExternalID: "uid_1",
|
||||||
|
@ -604,27 +604,20 @@ func (c *MgClient) MessagesHistory(request SendHistoryMessageRequest) (MessagesR
|
||||||
// }
|
// }
|
||||||
//
|
//
|
||||||
// log.Printf("status: %d", status)
|
// log.Printf("status: %d", status)
|
||||||
func (c *MgClient) AddMessageReaction(request ReactionRequest) (MessageReactionResponse, int, error) {
|
func (c *MgClient) AddMessageReaction(request ReactionRequest) (int, error) {
|
||||||
var (
|
var outgoing = &bytes.Buffer{}
|
||||||
resp MessageReactionResponse
|
|
||||||
outgoing = &bytes.Buffer{}
|
|
||||||
)
|
|
||||||
_ = json.NewEncoder(outgoing).Encode(request)
|
_ = json.NewEncoder(outgoing).Encode(request)
|
||||||
|
|
||||||
data, status, err := c.PostRequest("/messages/reaction", outgoing)
|
data, status, err := c.PostRequest("/messages/reaction", outgoing)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return resp, status, err
|
return status, err
|
||||||
}
|
|
||||||
|
|
||||||
if e := json.Unmarshal(data, &resp); e != nil {
|
|
||||||
return resp, status, e
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if status != http.StatusOK {
|
if status != http.StatusOK {
|
||||||
return resp, status, NewAPIClientError(data)
|
return status, NewAPIClientError(data)
|
||||||
}
|
}
|
||||||
|
|
||||||
return resp, status, err
|
return status, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// DeleteMessagesReaction removes reactions to the message.
|
// DeleteMessagesReaction removes reactions to the message.
|
||||||
|
@ -635,7 +628,7 @@ func (c *MgClient) AddMessageReaction(request ReactionRequest) (MessageReactionR
|
||||||
//
|
//
|
||||||
// client := New("https://message-gateway.url", "cb8ccf05e38a47543ad8477d4999be73bff503ea6")
|
// client := New("https://message-gateway.url", "cb8ccf05e38a47543ad8477d4999be73bff503ea6")
|
||||||
//
|
//
|
||||||
// _, status, err := client.DeleteMessagesReaction(ReactionRequest{
|
// status, err := client.DeleteMessagesReaction(ReactionRequest{
|
||||||
// ChannelID: 305,
|
// ChannelID: 305,
|
||||||
// Message: ReactionMessageReference{
|
// Message: ReactionMessageReference{
|
||||||
// ExternalID: "uid_1",
|
// ExternalID: "uid_1",
|
||||||
|
@ -647,24 +640,19 @@ func (c *MgClient) AddMessageReaction(request ReactionRequest) (MessageReactionR
|
||||||
// }
|
// }
|
||||||
//
|
//
|
||||||
// log.Printf("status: %d", status)
|
// log.Printf("status: %d", status)
|
||||||
func (c *MgClient) DeleteMessagesReaction(request ReactionRequest) (MessageReactionResponse, int, error) {
|
func (c *MgClient) DeleteMessagesReaction(request ReactionRequest) (int, error) {
|
||||||
var resp MessageReactionResponse
|
|
||||||
outgoing, _ := json.Marshal(&request)
|
outgoing, _ := json.Marshal(&request)
|
||||||
|
|
||||||
data, status, err := c.DeleteRequest("/messages/reaction", outgoing)
|
data, status, err := c.DeleteRequest("/messages/reaction", outgoing)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return resp, status, err
|
return status, err
|
||||||
}
|
|
||||||
|
|
||||||
if e := json.Unmarshal(data, &resp); e != nil {
|
|
||||||
return resp, status, e
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if status != http.StatusOK {
|
if status != http.StatusOK {
|
||||||
return resp, status, NewAPIClientError(data)
|
return status, NewAPIClientError(data)
|
||||||
}
|
}
|
||||||
|
|
||||||
return resp, status, err
|
return status, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// UpdateMessages edits existing message. Only text messages are supported.
|
// UpdateMessages edits existing message. Only text messages are supported.
|
||||||
|
|
|
@ -901,14 +901,38 @@ func (t *MGClientTest) Test_AddMessageReaction() {
|
||||||
t.gock().
|
t.gock().
|
||||||
Post(t.transportURL("messages/reaction")).
|
Post(t.transportURL("messages/reaction")).
|
||||||
Reply(http.StatusOK).
|
Reply(http.StatusOK).
|
||||||
JSON(MessageReactionResponse{})
|
JSON(``)
|
||||||
|
|
||||||
_, status, err := c.AddMessageReaction(snd)
|
status, err := c.AddMessageReaction(snd)
|
||||||
t.Require().NoError(err)
|
t.Require().NoError(err)
|
||||||
t.Assert().Equal(http.StatusOK, status)
|
t.Assert().Equal(http.StatusOK, status)
|
||||||
t.Assert().Empty(gock.GetUnmatchedRequests())
|
t.Assert().Empty(gock.GetUnmatchedRequests())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (t *MGClientTest) Test_AddMessageReaction_error() {
|
||||||
|
c := t.client()
|
||||||
|
|
||||||
|
snd := ReactionRequest{
|
||||||
|
Channel: 1,
|
||||||
|
Message: ReactionMessageReference{
|
||||||
|
ExternalID: "external_1",
|
||||||
|
},
|
||||||
|
Reaction: "😁",
|
||||||
|
}
|
||||||
|
|
||||||
|
defer gock.Off()
|
||||||
|
t.gock().
|
||||||
|
Post(t.transportURL("messages/reaction")).
|
||||||
|
Reply(http.StatusBadRequest).
|
||||||
|
JSON(`{"errors": ["problems"]}`)
|
||||||
|
|
||||||
|
status, err := c.AddMessageReaction(snd)
|
||||||
|
t.Assert().Equal(http.StatusBadRequest, status)
|
||||||
|
t.Assert().Error(err)
|
||||||
|
t.Assert().Equal("problems", err.Error())
|
||||||
|
t.Assert().Empty(gock.GetUnmatchedRequests())
|
||||||
|
}
|
||||||
|
|
||||||
func (t *MGClientTest) Test_DeleteMessagesReaction() {
|
func (t *MGClientTest) Test_DeleteMessagesReaction() {
|
||||||
c := t.client()
|
c := t.client()
|
||||||
|
|
||||||
|
@ -924,14 +948,38 @@ func (t *MGClientTest) Test_DeleteMessagesReaction() {
|
||||||
t.gock().
|
t.gock().
|
||||||
Delete(t.transportURL("messages/reaction")).
|
Delete(t.transportURL("messages/reaction")).
|
||||||
Reply(http.StatusOK).
|
Reply(http.StatusOK).
|
||||||
JSON(MessageReactionResponse{})
|
JSON(``)
|
||||||
|
|
||||||
_, status, err := c.DeleteMessagesReaction(snd)
|
status, err := c.DeleteMessagesReaction(snd)
|
||||||
t.Require().NoError(err)
|
t.Require().NoError(err)
|
||||||
t.Assert().Equal(http.StatusOK, status)
|
t.Assert().Equal(http.StatusOK, status)
|
||||||
t.Assert().Empty(gock.GetUnmatchedRequests())
|
t.Assert().Empty(gock.GetUnmatchedRequests())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (t *MGClientTest) Test_DeleteMessagesReaction_error() {
|
||||||
|
c := t.client()
|
||||||
|
|
||||||
|
snd := ReactionRequest{
|
||||||
|
Channel: 1,
|
||||||
|
Message: ReactionMessageReference{
|
||||||
|
ExternalID: "external_1",
|
||||||
|
},
|
||||||
|
Reaction: "😁",
|
||||||
|
}
|
||||||
|
|
||||||
|
defer gock.Off()
|
||||||
|
t.gock().
|
||||||
|
Delete(t.transportURL("messages/reaction")).
|
||||||
|
Reply(http.StatusBadRequest).
|
||||||
|
JSON(`{"errors": ["problems"]}`)
|
||||||
|
|
||||||
|
status, err := c.DeleteMessagesReaction(snd)
|
||||||
|
t.Assert().Equal(http.StatusBadRequest, status)
|
||||||
|
t.Assert().Error(err)
|
||||||
|
t.Assert().Equal("problems", err.Error())
|
||||||
|
t.Assert().Empty(gock.GetUnmatchedRequests())
|
||||||
|
}
|
||||||
|
|
||||||
func (t *MGClientTest) Test_MarkMessageReadAndDelete() {
|
func (t *MGClientTest) Test_MarkMessageReadAndDelete() {
|
||||||
c := t.client()
|
c := t.client()
|
||||||
|
|
||||||
|
|
|
@ -403,8 +403,6 @@ type SendMessageRequestQuote struct {
|
||||||
// MarkMessageReadResponse type.
|
// MarkMessageReadResponse type.
|
||||||
type MarkMessageReadResponse struct{}
|
type MarkMessageReadResponse struct{}
|
||||||
|
|
||||||
type MessageReactionResponse struct{}
|
|
||||||
|
|
||||||
// MarkMessageReadRequest type.
|
// MarkMessageReadRequest type.
|
||||||
type MarkMessageReadRequest struct {
|
type MarkMessageReadRequest struct {
|
||||||
Message MarkMessageReadRequestMessage `json:"message"`
|
Message MarkMessageReadRequestMessage `json:"message"`
|
||||||
|
|
Loading…
Add table
Reference in a new issue