fixed bug for multiple response.
This commit is contained in:
parent
068bc86828
commit
4e51273151
24
channel.go
24
channel.go
@ -37,6 +37,12 @@ type SendMessageStruct struct {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Fetched messages struct.
|
||||||
|
type FetchedMessages struct {
|
||||||
|
Messages []*Message `json:"messages"`
|
||||||
|
Users []*User `json:"users"`
|
||||||
|
}
|
||||||
|
|
||||||
// Send a message to the channel.
|
// Send a message to the channel.
|
||||||
func (c Channel) SendMessage(message *SendMessageStruct) (*Message, error) {
|
func (c Channel) SendMessage(message *SendMessageStruct) (*Message, error) {
|
||||||
if message.Nonce == "" {
|
if message.Nonce == "" {
|
||||||
@ -68,7 +74,7 @@ func (c Channel) SendMessage(message *SendMessageStruct) (*Message, error) {
|
|||||||
|
|
||||||
// Fetch messages from channel.
|
// Fetch messages from channel.
|
||||||
// Check: https://developers.revolt.chat/api/#tag/Messaging/paths/~1channels~1:channel~1messages/get for map parameters.
|
// Check: https://developers.revolt.chat/api/#tag/Messaging/paths/~1channels~1:channel~1messages/get for map parameters.
|
||||||
func (c Channel) FetchMessages(options map[string]interface{}) ([]*Message, error) {
|
func (c Channel) FetchMessages(options map[string]interface{}) (*FetchedMessages, error) {
|
||||||
// Format url
|
// Format url
|
||||||
url := "/channels/" + c.Id + "/messages?"
|
url := "/channels/" + c.Id + "/messages?"
|
||||||
|
|
||||||
@ -80,7 +86,7 @@ func (c Channel) FetchMessages(options map[string]interface{}) ([]*Message, erro
|
|||||||
|
|
||||||
url = url[:len(url)-1]
|
url = url[:len(url)-1]
|
||||||
|
|
||||||
fetchedMsgs := []*Message{}
|
fetchedMsgs := &FetchedMessages{}
|
||||||
|
|
||||||
// Send request
|
// Send request
|
||||||
resp, err := c.Client.Request("GET", url, []byte{})
|
resp, err := c.Client.Request("GET", url, []byte{})
|
||||||
@ -92,13 +98,23 @@ func (c Channel) FetchMessages(options map[string]interface{}) ([]*Message, erro
|
|||||||
err = json.Unmarshal(resp, &fetchedMsgs)
|
err = json.Unmarshal(resp, &fetchedMsgs)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fetchedMsgs, err
|
err = json.Unmarshal([]byte(fmt.Sprintf("{\"messages\": %s}", resp)), &fetchedMsgs)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return fetchedMsgs, err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add client to users & messages
|
// Add client to users & messages
|
||||||
for _, msg := range fetchedMsgs {
|
for _, msg := range fetchedMsgs.Messages {
|
||||||
msg.Client = c.Client
|
msg.Client = c.Client
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if fetchedMsgs.Users != nil {
|
||||||
|
for _, msg := range fetchedMsgs.Users {
|
||||||
|
msg.Client = c.Client
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return fetchedMsgs, nil
|
return fetchedMsgs, nil
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user