rest

package
v0.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 11, 2021 License: MIT Imports: 13 Imported by: 0

Documentation

Overview

Package rest provides a RocketChat rest client.

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrResponse = fmt.Errorf("got false response")
)

Functions

This section is empty.

Types

type ChannelMembersResponse

type ChannelMembersResponse struct {
	Status
	models.Pagination
	Members []models.User `json:"members"`
}

type ChannelMessagesResponse

type ChannelMessagesResponse struct {
	Status
	models.Pagination
	Messages []models.Message `json:"messages"`
}

type ChannelResponse

type ChannelResponse struct {
	Status
	Channel models.Channel `json:"channel"`
}

type ChannelsResponse

type ChannelsResponse struct {
	Status
	models.Pagination
	Channels []models.Channel `json:"channels"`
}

type Client

type Client struct {
	Protocol string
	Host     string
	Path     string
	Port     string
	Version  string

	// Use this switch to see all network communication.
	Debug bool
	// contains filtered or unexported fields
}

func NewClient

func NewClient(serverURL *url.URL, debug bool) *Client

func (*Client) AddOwnerGroup

func (c *Client) AddOwnerGroup(group *models.InviteGroupRequest) (*models.Group, error)

AddOwnerGroup gives the role of owner for a user in the current group.

https://docs.rocket.chat/api/rest-api/methods/groups/addowner

func (*Client) CreateGroup

func (c *Client) CreateGroup(group *models.CreateGroupRequest) (*models.Group, error)

CreateGroup Creates a new private group, optionally including specified users. The group creator is always included.

https://docs.rocket.chat/api/rest-api/methods/groups/create

func (*Client) CreateToken

func (c *Client) CreateToken(userID, username string) (*models.UserCredentials, error)

CreateToken creates an access token for a user

https://rocket.chat/docs/developer-guides/rest-api/users/createtoken/

func (*Client) CreateUser

func (c *Client) CreateUser(req *models.CreateUserRequest) (*CreateUserResponse, error)

CreateUser being logged in with a user that has permission to do so.

https://rocket.chat/docs/developer-guides/rest-api/users/create

func (*Client) DeleteGroup

func (c *Client) DeleteGroup(group *models.Group) error

DeleteGroup remove a private channel.

https://docs.rocket.chat/api/rest-api/methods/groups/delete

func (*Client) Get

func (c *Client) Get(api string, params url.Values, response Response) error

Get call Get.

func (*Client) GetChannelInfo

func (c *Client) GetChannelInfo(channel *models.Channel) (*models.Channel, error)

GetChannelInfo get information about a channel. That might be useful to update the usernames.

https://rocket.chat/docs/developer-guides/rest-api/channels/info

func (*Client) GetDirectory

func (c *Client) GetDirectory(params url.Values) (*models.Directory, error)

GetDirectory a method, that searches by users or channels on all users and channels available on server. It supports the Offset, Count, and Sort Query Parameters along with Query and Fields Query Parameters.

https://rocket.chat/docs/developer-guides/rest-api/miscellaneous/directory

func (*Client) GetGroupInfo

func (c *Client) GetGroupInfo(group *models.Group) (*models.Group, error)

GetGroupInfo retrieves the information about the private group, only if you're part of the group.

https://docs.rocket.chat/api/rest-api/methods/groups/info

func (*Client) GetJoinedChannels

func (c *Client) GetJoinedChannels(params url.Values) (*ChannelsResponse, error)

GetJoinedChannels returns all channels that the user has joined.

https://rocket.chat/docs/developer-guides/rest-api/channels/list-joined

func (*Client) GetMessages

func (c *Client) GetMessages(channel *models.Channel, page *models.Pagination) ([]models.Message, error)

Get messages from a channel. The channel id has to be not nil. Optionally a count can be specified to limit the size of the returned messages.

https://rocket.chat/docs/developer-guides/rest-api/channels/history

func (*Client) GetPublicChannels

func (c *Client) GetPublicChannels() (*ChannelsResponse, error)

GetPublicChannels returns all channels that can be seen by the logged in user.

https://rocket.chat/docs/developer-guides/rest-api/channels/list

func (*Client) GetServerInfo

func (c *Client) GetServerInfo() (*models.Info, error)

GetServerInfo a simple method, requires no authentication, that returns information about the server including version information.

https://rocket.chat/docs/developer-guides/rest-api/miscellaneous/info

func (*Client) GetSpotlight

func (c *Client) GetSpotlight(params url.Values) (*models.Spotlight, error)

GetSpotlight searches for users or rooms that are visible to the user. WARNING: It will only return rooms that user didn’t join yet.

https://rocket.chat/docs/developer-guides/rest-api/miscellaneous/spotlight

func (*Client) GetStatistics

func (c *Client) GetStatistics() (*models.StatisticsInfo, error)

GetStatistics Statistics about the Rocket.Chat server.

https://rocket.chat/docs/developer-guides/rest-api/miscellaneous/statistics

func (*Client) GetStatisticsList

func (c *Client) GetStatisticsList(params url.Values) (*models.StatisticsList, error)

GetStatisticsList Selectable statistics about the Rocket.Chat server. It supports the Offset, Count and Sort Query Parameters along with just the Fields and Query Parameters.

https://rocket.chat/docs/developer-guides/rest-api/miscellaneous/statistics.list

func (*Client) GetUserInfo added in v0.0.3

func (c *Client) GetUserInfo(user *models.User) (*models.User, error)

GetUserInfo get information about a channel. That might be useful to update the usernames.

https://rocket.chat/docs/developer-guides/rest-api/channels/info

func (*Client) HistoryGroup

func (c *Client) HistoryGroup(group *models.Group) ([]models.Message, error)

HistoryGroup retrieves the messages from a private group, only if you're part of the group.

https://docs.rocket.chat/api/rest-api/methods/groups/history

func (*Client) InviteGroup

func (c *Client) InviteGroup(group *models.InviteGroupRequest) (*models.Group, error)

InviteGroup Adds a user to the private group.

https://docs.rocket.chat/api/rest-api/methods/groups/invite

func (*Client) KickGroup

func (c *Client) KickGroup(group *models.InviteGroupRequest) (*models.Group, error)

Removes a user from the private group.

https://docs.rocket.chat/api/rest-api/methods/groups/kick

func (*Client) LeaveChannel

func (c *Client) LeaveChannel(channel *models.Channel) error

LeaveChannel leaves a channel. The id of the channel has to be not nil.

https://rocket.chat/docs/developer-guides/rest-api/channels/leave

func (*Client) LeaveGroup

func (c *Client) LeaveGroup(group *models.Group) error

LeaveGroup remove a private channel.

https://docs.rocket.chat/api/rest-api/methods/groups/leave

func (*Client) ListGroup

func (c *Client) ListGroup() ([]models.Group, error)

ListGroup remove a private channel.

https://docs.rocket.chat/api/rest-api/methods/groups/list

func (*Client) Login

func (c *Client) Login(credentials *models.UserCredentials) error

Login a user. The Email and the Password are mandatory. The auth token of the user is stored in the Client instance.

https://rocket.chat/docs/developer-guides/rest-api/authentication/login

func (*Client) Logout

func (c *Client) Logout() (string, error)

Logout a user. The function returns the response message of the server.

https://rocket.chat/docs/developer-guides/rest-api/authentication/logout

func (*Client) MembersGroup

func (c *Client) MembersGroup(group *models.Group) ([]models.User, error)

MembersGroup lists the users of participants of a private group.

https://docs.rocket.chat/api/rest-api/methods/groups/members

func (*Client) MessagesGroup

func (c *Client) MessagesGroup(group *models.Group) ([]models.Message, error)

MessagesGroup Lists all of the specific group messages on the server. It supports the Offset, Count, and Sort Query Parameters along with Query and Fields Query Parameters.

https://docs.rocket.chat/api/rest-api/methods/groups/messages

func (*Client) Post

func (c *Client) Post(api string, body io.Reader, response Response) error

Post call as JSON.

func (*Client) PostForm

func (c *Client) PostForm(api string, params url.Values, response Response) error

PostForm call as Form Data.

func (*Client) PostMessage

func (c *Client) PostMessage(msg *models.PostMessage) (*MessageResponse, error)

PostMessage send a message to a channel. The channel or roomID has to be not nil. The message will be json encode.

https://rocket.chat/docs/developer-guides/rest-api/chat/postmessage

func (*Client) RemoveOwnerGroup

func (c *Client) RemoveOwnerGroup(group *models.InviteGroupRequest) (*models.Group, error)

RemoveOwnerGroup removes the role of owner from a user in the current Group.

https://docs.rocket.chat/api/rest-api/methods/groups/removeowner

func (*Client) Send

func (c *Client) Send(channel *models.Channel, msg string) error

Sends a message to a channel. The name of the channel has to be not nil. The message will be html escaped.

https://rocket.chat/docs/developer-guides/rest-api/chat/postmessage

func (*Client) SetAnnouncementGroup

func (c *Client) SetAnnouncementGroup(groupID, announcement string) error

SetAnnouncementGroup remove a private channel.

https://docs.rocket.chat/api/rest-api/methods/groups/setannouncement

func (*Client) SetUserAvatar

func (c *Client) SetUserAvatar(userID, username, avatarURL string) (*Status, error)

SetUserAvatar updates a user's avatar being logged in with a user that has permission to do so. Currently only passing an URL is possible.

https://rocket.chat/docs/developer-guides/rest-api/users/setavatar/

func (*Client) UpdateUser

func (c *Client) UpdateUser(req *models.UpdateUserRequest) (*CreateUserResponse, error)

UpdateUser updates a user's data being logged in with a user that has permission to do so.

https://rocket.chat/docs/developer-guides/rest-api/users/update/

type CreateUserResponse

type CreateUserResponse struct {
	Status
	User struct {
		ID        string    `json:"_id"`
		CreatedAt time.Time `json:"createdAt"`
		Services  struct {
			Password struct {
				Bcrypt string `json:"bcrypt"`
			} `json:"password"`
		} `json:"services"`
		Username string `json:"username"`
		Emails   []struct {
			Address  string `json:"address"`
			Verified bool   `json:"verified"`
		} `json:"emails"`
		Type         string            `json:"type"`
		Status       string            `json:"status"`
		Active       bool              `json:"active"`
		Roles        []string          `json:"roles"`
		UpdatedAt    time.Time         `json:"_updatedAt"`
		Name         string            `json:"name"`
		CustomFields map[string]string `json:"customFields"`
	} `json:"user"`
}

type DirectoryResponse

type DirectoryResponse struct {
	Status
	models.Directory
}

type GroupMembersResponse

type GroupMembersResponse = ChannelMembersResponse

type GroupMessagesResponse

type GroupMessagesResponse = ChannelMessagesResponse

type GroupResponse

type GroupResponse struct {
	Status
	Group models.Group `json:"group"`
}

type GroupsResponse

type GroupsResponse struct {
	Status
	models.Pagination
	Groups []models.Group `json:"groups"`
}

type InfoResponse

type InfoResponse struct {
	Status
	Info models.Info `json:"info"`
}

type MessageResponse

type MessageResponse struct {
	Status
	Message models.Message `json:"message"`
}

type MessagesResponse

type MessagesResponse struct {
	Status
	Messages []models.Message `json:"messages"`
}

type Response

type Response interface {
	OK() error
}

type SpotlightResponse

type SpotlightResponse struct {
	Status
	models.Spotlight
}

type StatisticsListResponse

type StatisticsListResponse struct {
	Status
	models.StatisticsList
}

type StatisticsResponse

type StatisticsResponse struct {
	Status
	models.StatisticsInfo
}

type Status

type Status struct {
	Success bool   `json:"success"`
	Error   string `json:"error"`

	Status  string `json:"status"`
	Message string `json:"message"`
}

func (Status) OK

func (s Status) OK() error

type StatusResponse

type StatusResponse struct {
	Status
	Channel string `json:"channel"`
}

StatusResponse The base for the most of the json responses.

type UpdatePermissionsRequest

type UpdatePermissionsRequest struct {
	Permissions []models.Permission `json:"permissions"`
}

type UpdatePermissionsResponse

type UpdatePermissionsResponse struct {
	Status
	Permissions []models.Permission `json:"permissions"`
}

type UserResponse added in v0.0.3

type UserResponse struct {
	Status
	User models.User `json:"user"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL