1
0
mirror of https://github.com/badkaktus/gorocket.git synced 2024-12-04 10:34:44 +02:00
golang library for rocket.chat
Go to file
2024-02-03 21:54:40 +02:00
.github/workflows write tests, fix some bugs 2024-02-03 21:54:40 +02:00
.gitignore init commit 2020-04-30 17:36:31 +03:00
authentication_test.go write tests, fix some bugs 2024-02-03 21:54:40 +02:00
authentication.go write tests, fix some bugs 2024-02-03 21:54:40 +02:00
autotranslate_test.go write tests, fix some bugs 2024-02-03 21:54:40 +02:00
autotranslate.go write tests, fix some bugs 2024-02-03 21:54:40 +02:00
CHANGELOG.md v0.1.3 2022-10-27 20:03:28 +03:00
channels_test.go write tests, fix some bugs 2024-02-03 21:54:40 +02:00
channels.go write tests, fix some bugs 2024-02-03 21:54:40 +02:00
chat_test.go write tests, fix some bugs 2024-02-03 21:54:40 +02:00
chat.go write tests, fix some bugs 2024-02-03 21:54:40 +02:00
go.mod write tests, fix some bugs 2024-02-03 21:54:40 +02:00
go.sum write tests, fix some bugs 2024-02-03 21:54:40 +02:00
gorocket_logo.png write tests, fix some bugs 2024-02-03 21:54:40 +02:00
gorocket_test.go write tests, fix some bugs 2024-02-03 21:54:40 +02:00
gorocket.go write tests, fix some bugs 2024-02-03 21:54:40 +02:00
groups_test.go write tests, fix some bugs 2024-02-03 21:54:40 +02:00
groups.go write tests, fix some bugs 2024-02-03 21:54:40 +02:00
helper.go write tests, fix some bugs 2024-02-03 21:54:40 +02:00
hooks_test.go write tests, fix some bugs 2024-02-03 21:54:40 +02:00
hooks.go write tests, fix some bugs 2024-02-03 21:54:40 +02:00
info_test.go write tests, fix some bugs 2024-02-03 21:54:40 +02:00
info.go write tests, fix some bugs 2024-02-03 21:54:40 +02:00
LICENSE add license 2020-09-08 23:21:44 +03:00
README.md write tests, fix some bugs 2024-02-03 21:54:40 +02:00
users_test.go write tests, fix some bugs 2024-02-03 21:54:40 +02:00
users.go write tests, fix some bugs 2024-02-03 21:54:40 +02:00

gorocket logo

Golang Rocket Chat REST API client

Use this simple client if you need to connect to Rocket Chat in Golang.

How to use

Just import

import (
	"github.com/badkaktus/gorocket"
)

Create client

client := gorocket.NewWithOptions("https://your-rocket-chat.com", 
    gorocket.WithUserID("my-user-id"),
    gorocket.WithToken("my-bot-token"),
    gorocket.WithTimeout(1 * time.Second),
)

or

client := gorocket.NewClient("https://your-rocket-chat.com")

// login as the main admin user
login := gorocket.LoginPayload{
    User:     "admin-login",
    Password: "admin-password",
}

lg, err := client.Login(&login)

if err != nil {
    fmt.Printf("Error: %+v", err)
}
fmt.Printf("I'm %s", lg.Data.Me.Username)

Manage user

str := gorocket.NewUser{
    Email:                 "test@email.com",
    Name:                  "John Doe",
    Password:              "simplepassword",
    Username:              "johndoe",
    Active:                true,
}

me, err := client.UsersCreate(&str)
if err != nil {
    fmt.Printf("Error: %+v", err)
}
fmt.Printf("User was created %t", me.Success)

Post a message

// create a new channel
str := gorocket.CreateChannelRequest{
    Name:     "newchannel",
}

channel, err := client.CreateChannel(&str)
if err != nil {
    fmt.Printf("Error: %+v", err)
}
fmt.Printf("Channel was created %t", channel.Success)
// post a message
str := gorocket.Message{
    Channel:     "somechannel",
    Text:        "Hey! This is new message from Golang REST Client",
}

msg, err := client.PostMessage(&str)
if err != nil {
    fmt.Printf("Error: %+v", err)
}
fmt.Printf("Message was posted %t", msg.Success)

Pagination

If endpoint support pagination, you can use that like this:

// sort field in map. 1 - asc, -1 - desc
srt := map[string]int{"_updatedAt": 1, "name": -1}

client.Count(10).Offset(10).Sort(srt).ChannelList()

PS

Feel free to create issue for add new endpoint to this client