Skip to content
This repository has been archived by the owner. It is now read-only.
[DISCONTINUED] HipChat client library for Elixir
Elixir HTML
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci
config
doc_src
generator
hipchat_swagger @ b751ff8
lib
test
.gitignore
.gitmodules
CHANGELOG.md
CONTRIBUTION.md
LICENSE
README.md
mix.exs
mix.lock

README.md

⚠️ DISCONTINUATION NOTICE

HipChat itself is discontinued by Atlassian due to their partnership with Slack.

This Elixir library is therefore no longer maintained, and goes archive. Thanks for your interest though! ❤️

hipchat_elixir

Hex.pm CircleCI

HipChat client library for Elixir.

Policy

  • Using Erlang's built-in httpc as HTTP client, for easier dependency management.
  • No state. Access tokens and other credentials should be retrieved/stored by caller applications.
  • Relying on HipChat cloud for parameter validations.
  • Covering APIs used in server side only.
  • Generating codes from Swagger (OpenAPI) specifications in ymtszw/hipchat_swagger.
    • Read more in here.

Basic Usage

  1. Add :hipchat_elixir as a dependency.
  2. Create client struct (Hipchat.ApiClient.new/3).
    • Pass access_token if the targeted API requires authentication.
    • See here for details.
  3. Pass the resultant client and other parameters to the targeted API function.
Hipchat.ApiClient.new("access_token")
|> Hipchat.V2.Rooms.send_room_notification("room_id", %{message: "Hello HipChat!"})
# {:ok, %Hipchat.Httpc.Response{body: "", headers: ..., status: 204}}

About Content-Type

Request bodies are sent as content-type: application/json or content-type: x-www-form-urlencoded depending on :serializer config value.

  • See config/config.exs for example.
  • Some HipChat APIs (implicitly) require content-type: application/json, so introducing JSON serializer is almost mandatory.
    • Currently only supports Poison.

Status

Basic chat related APIs (CRUD operation of rooms/users, sending messages/notifications, etc) are covered.

Many add-on (extension) related APIs are not covered. Since HipChat itself is sunsetting and moving toward Stride, I may not revisit to perfect these. If interested, contributions are welcomed.

Only supports HipChat cloud (not HipChat server).

License

MIT

You can’t perform that action at this time.