rest

package
v0.0.0-...-16d6006 Latest Latest
Warning

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

Go to latest
Published: Jan 8, 2022 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 (
	ResponseErr = fmt.Errorf("got false response")
)

Functions

This section is empty.

Types

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) CreateDirectMessage

func (c *Client) CreateDirectMessage(username string) (*Room, error)

Creates a DirectMessage

https://developer.rocket.chat/api/rest-api/methods/im/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) 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(channel *models.Channel) (*models.Channel, error)

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 (*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) GetPrivateGroups

func (c *Client) GetPrivateGroups() (*GroupsResponse, error)

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

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

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) GetUserStatus

func (c *Client) GetUserStatus(username string) (*UserStatusResponse, error)

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) 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) 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) 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) 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 DirectMessageResponse

type DirectMessageResponse struct {
	Status
	Room Room `json:"room"`
}

type DirectoryResponse

type DirectoryResponse struct {
	Status
	models.Directory
}

type GroupResponse

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

type GroupsResponse

type GroupsResponse struct {
	Status
	models.Pagination
	Groups []models.Channel `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 Room

type Room struct {
	ID        string   `json:"_id"`
	Rid       string   `json:"rid"`
	Type      string   `json:"t"`
	Usernames []string `json:"usernames"`
}

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 UserStatusResponse

type UserStatusResponse struct {
	ID               string `json:"_id"`
	ConnectionStatus string `json:"connectionStatus"`
	Message          string `json:"message"`
	Status           string `json:"status"`
	Error            string `json:"error"`
	Success          bool   `json:"success"`
}

func (UserStatusResponse) OK

func (s UserStatusResponse) OK() error

Jump to

Keyboard shortcuts

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