summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/matterbridge/Rocket.Chat.Go.SDK/rest
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/matterbridge/Rocket.Chat.Go.SDK/rest')
-rw-r--r--vendor/github.com/matterbridge/Rocket.Chat.Go.SDK/rest/channels.go41
1 files changed, 41 insertions, 0 deletions
diff --git a/vendor/github.com/matterbridge/Rocket.Chat.Go.SDK/rest/channels.go b/vendor/github.com/matterbridge/Rocket.Chat.Go.SDK/rest/channels.go
index d5c8fa85..473f957d 100644
--- a/vendor/github.com/matterbridge/Rocket.Chat.Go.SDK/rest/channels.go
+++ b/vendor/github.com/matterbridge/Rocket.Chat.Go.SDK/rest/channels.go
@@ -19,6 +19,17 @@ type ChannelResponse struct {
Channel models.Channel `json:"channel"`
}
+type GroupsResponse struct {
+ Status
+ models.Pagination
+ Groups []models.Channel `json:"groups"`
+}
+
+type GroupResponse struct {
+ Status
+ Group models.Channel `json:"group"`
+}
+
// GetPublicChannels returns all channels that can be seen by the logged in user.
//
// https://rocket.chat/docs/developer-guides/rest-api/channels/list
@@ -31,6 +42,19 @@ func (c *Client) GetPublicChannels() (*ChannelsResponse, error) {
return response, nil
}
+// GetPrivateGroups returns all channels that can be seen by the logged in user.
+//
+// https://rocket.chat/docs/developer-guides/rest-api/groups/list
+func (c *Client) GetPrivateGroups() (*GroupsResponse, error) {
+ response := new(GroupsResponse)
+ if err := c.Get("groups.list", nil, response); err != nil {
+ return nil, err
+ }
+
+ return response, nil
+}
+
+
// GetJoinedChannels returns all channels that the user has joined.
//
// https://rocket.chat/docs/developer-guides/rest-api/channels/list-joined
@@ -70,3 +94,20 @@ func (c *Client) GetChannelInfo(channel *models.Channel) (*models.Channel, error
return &response.Channel, nil
}
+// GetGroupInfo get information about a group. That might be useful to update the usernames.
+//
+// https://rocket.chat/docs/developer-guides/rest-api/groups/info
+func (c *Client) GetGroupInfo(channel *models.Channel) (*models.Channel, error) {
+ response := new(GroupResponse)
+ switch {
+ case channel.Name != "" && channel.ID == "":
+ if err := c.Get("groups.info", url.Values{"roomName": []string{channel.Name}}, response); err != nil {
+ return nil, err
+ }
+ default:
+ if err := c.Get("groups.info", url.Values{"roomId": []string{channel.ID}}, response); err != nil {
+ return nil, err
+ }
+ }
+ return &response.Group, nil
+}