/hipchat-go

Go client library for the HipChat API v2

Primary LanguageGoApache License 2.0Apache-2.0

hipchat-go

Go client library for the HipChat API v2.

GoDoc Build Status

Currently only a small part of the API is implemented, so pull requests are welcome.

Usage

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

Testing the auth token

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.