• Stars
    star
    122
  • Rank 292,031 (Top 6 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created about 10 years ago
  • Updated about 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Go client library for the HipChat API v2

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.