0.0
No commit activity in last 3 years
No release in over 3 years
A RESTful wrapper around the Intervals API
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Runtime

>= 0.13.3, ~> 0.13
>= 0.5.0, ~> 0.5
 Project Readme

Intervals API

By Staplegun

Description

This gem is a wrapper around the Intervals REST API which allows you to retrieve, create, update, and delete several different resources from their database. All API requests are made with the help of the HTTParty gem.

Usage

To begin, create an instance of your specific Intervals account using the account's API token. You can learn where to find that here.

intervals = IntervalsAPI::RequestHandler.new('your_token')

Now you're free to make your requests. The structure of a request looks like:

intervals.get(resource, query_options)

Request Arguments

resource

Type: String

The endpoint resource you are querying

query_options

Type: Hash Default: {}

A hash of options, such as filter options for a GET request, new object options for a POST request, etc.

Available keys (See in the examples how they're used):

  • query - Query parameters that you wish to pass, typically via GET requests
  • body - Data you wish to submit, typically via POST or PUT requests
  • headers - Request headers you wish to set

View the HTTParty gem to see more options about formatting your request, and view the Intervals documentation to learn about which resources are available to request.

Response

The response from Intervals API will contain all returned json data from Intervals in the form of a hash.

Request Type Examples

Get

# Retrieve all clients
response = intervals.get('/client/');
# Retrieve all active clients
response = intervals.get('/client/', query: {
  active: true
});

Post

# Create a task request
intervals.post('/request/', body: {
  personid:     5,
  projectid:    6,
  title:        'Just an average title'
})

Put

# Update a task request
intervals.put('/request/1/', body: {
  priorityid:   1,
  title:        "Here's an updated title"
})

Delete

# Delete a task request
intervals.delete('/request/1/')

TODO

Build a test suite to test the API. If anyone has a great way to test an authenticated third-party API, throw out some ideas.


Intervals API is licensed under the [GPL](http://www.gnu.org/licenses/gpl.html) license.

Staplegun