README.md
# Cachet API Library Wrapper
[![Travis CI](https://travis-ci.org/TheFynx/cachet_api.svg)](https://travis-ci.org/TheFynx/cachet_api) [![Code Climate](https://codeclimate.com/github/TheFynx/cachet_api/badges/gpa.svg)](https://codeclimate.com/github/TheFynx/cachet_api) [![Test Coverage](https://codeclimate.com/github/TheFynx/cachet_api/badges/coverage.svg)](https://codeclimate.com/github/TheFynx/cachet_api/coverage) [![Issue Count](https://codeclimate.com/github/TheFynx/cachet_api/badges/issue_count.svg)](https://codeclimate.com/github/TheFynx/cachet_api) [![Inline docs](http://inch-ci.org/github/thefynx/cachet_api.svg?branch=master)](http://inch-ci.org/github/thefynx/cachet_api) [![Gem](https://img.shields.io/gem/v/cachet_api.svg)](https://rubygems.org/gems/cachet_api) [![Gem](https://img.shields.io/gem/dt/cachet_api.svg)](https://rubygems.org/gems/cachet_api)
Ruby library wrapper for [CachetHQ.io](https://cachethq.io)
## Installation
Add this line to your application's Gemfile:
```ruby
gem 'cachet_api'
```
And then execute:
```
$ bundle
```
Or install it yourself as:
```
$ gem install cachet_api
```
## Usage
```ruby
# Under your profile in Cachet, get your api_key from the API Token section. Base url is https://demo.cachethq.io/api/v1/ or https://cachet.yourdomain.com/api/v1/
require 'cachet' # have an issue open to fix this, will force v2.0.0
CachetClient = CachetClient.new(api_key, base_url)
CachetComponents = CachetComponents.new(api_key, base_url)
CachetIncidents = CachetIncidents.new(api_key, base_url)
CachetMetrics = CachetMetrics.new(api_key, base_url)
CachetSubscribers = CachetSubscribers.new(api_key, base_url)
```
View the last release API documentation at: [https://docs.cachethq.io/](https://docs.cachethq.io/)
## Library to API Quick Reference
See [RubyDoc](http://www.rubydoc.info/github/TheFynx/cachet_api) for more in-depth documentation
### Ping
Cachet API | Ruby Library | Options/Params
:--------- | :---------------- | :-------------
get/ping | CachetClient.ping | N/A |
### Components
Cachet API | Ruby Library | Options/Params (R) == Required
:--------------------------- | :------------------------------ | :-------------------------------------------------------------------------------
get/components | CachetComponents.list | Options (hash) : id, name, status, group_id, enabled |
get/components/:id | CachetComponents.list_id | Options (hash) : id |
post/components | CachetComponents.create | Options (hash) : name(R), status(R), description, link, order, group_id, enabled |
put/components/:id | CachetComponents.update | Options (hash) : id(R), status(R), name(R), link, order, group_id, enabled |
delete/components/:id | CachetComponents.delete | Options (hash) : id(R) |
get/components/groups | CachetComponents.groups_list | N/A |
get/components/groups/:id | CachetComponents.groups_list_id | Options (hash) : id(R) |
post/components/groups | CachetComponents.groups_create | Options (hash) : name(R), order, collapsed(R) |
put/components/groups/:id | CachetComponents.groups_update | Options (hash) : id(R), name, order, collapsed |
delete/components/groups/:id | CachetComponents.groups_delete | Options (hash) : id(R) |
### Incidents
Cachet API | Ruby Library | Options/Params (R) == Required
:------------------- | :---------------------- | :--------------------------------------------------------------------------------------------------
get/incidents | CachetIncidents.list | Options (hash) : id, component_id, name, status, visible |
get/incidents/:id | CachetIncidents.list_id | Options (hash) : id |
post/incidents | CachetIncidents.create | Options (hash) : name(R), message(R), status(R), visible(R), component_id, component_status, notify |
put/incidents/:id | CachetIncidents.update | Options (hash) : id(R), name, message, status, visible, component_id, component_status, notify |
delete/incidents/:id | CachetIncidents.delete | Options (hash) : id |
### Metrics
Cachet API | Ruby Library | Options/Params (R) == Required
:---------------------------------- | :------------------------- | :--------------------------------------------------------------------------------------
get/metrics | CachetMetrics.list | N/A |
post/metrics | CachetMetrics.create | Options (hash) : name(R), suffix(R), description(R), default_value(R), display_chart(R) |
get/metrics/:id | CachetMetrics.list_id | Options (hash) : id(R) |
delete/metrics/:id | CachetMetrics.delete | Options (hash) : id(R) |
get/metrics/:id/points | CachetMetrics.point_list | Options (hash) : id (R) |
post/metrics/:id/points | CachetMetrics.point_add | Options (hash) : id(R), value(R), timestamp |
delete/metrics/:id/points/:point_id | CachetMetrics.point_delete | Options (hash) : id(R), point_id(R) |
### Subscribers
Cachet API | Ruby Library | Options/Params (R) == Required
:--------------------- | :----------------------- | :--------------------------------
get/subscribers | CachetSubscribers.list | N/A |
post/subscribers | CachetSubscribers.create | Options (hash) : email(R), verify |
delete/subscribers/:id | CachetSubscribers.delete | Options (hash) : id(R) |
## Development
After checking out the repo
- Run `bin/setup`
- To run IRB with quick configuration, `rake console`
- To install this gem onto your local machine, run `bundle exec rake install`
## Contribute
Fork this repo
- Make your changes
- Create/Update RSPEC Tests
- Document changes inline (if needed, aka new options)
- Document readme with changes
- Submit pull request