Go client library for the HipChat API v2.
Currently only a small part of the API is implemented, so pull requests are welcome.
import "github.com/tbruyelle/hipchat-go/hipchat"
Build a new client, then use the client.Room
service to spam all the rooms you have access to (not recommended):
c := hipchat.NewClient("<your AuthToken here>")
opt := &hipchat.RoomsListOptions{IncludePrivate: true, IncludeArchived: true}
rooms, _, err := c.Room.List(opt)
if err != nil {
panic(err)
}
notifRq := &hipchat.NotificationRequest{Message: "Hey there!"}
for _, room := range rooms.Items {
_, err := c.Room.Notification(room.Name, notifRq)
if err != nil {
panic(err)
}
}
HipChat allows to test the auth token by adding the auth_test=true
param, into any API endpoints.
You can do this with hipchat-go
by setting the global var hipchat.AuthTest
. Because the server response will be different from the one defined in the API endpoint, you need to check another global var AuthTestReponse
to see if the authentication succeeds.
hipchat.AuthTest = true
client.Room.Get(42)
_, ok := hipchat.AuthTestResponse["success"]
fmt.Println("Authentification succeed :", ok)
// Dont forget to reset the variable, or every other API calls
// will be impacted.
hipchat.AuthTest = false
The code architecture is hugely inspired by google/go-github.