class Ididthis::API::Client

TODO: Investigate using the ActiveResource-style calls Class for accessing the iDoneThis API

Attributes

token[W]

Public Class Methods

new(token) click to toggle source
# File lib/ididthis/api.rb, line 10
def initialize(token)
  @token = token
end

Public Instance Methods

dones(options) click to toggle source
# File lib/ididthis/api.rb, line 68
def dones(options)
  RestClient.get(
    ENDPOINTS[:dones],
    header_map.merge(:params => options)
  ) do |response, request, result, &block|
    case response.code
    when 200
      resp = JSON.parse(response, :symbolize_names => true)
      resp[:ok] ? resp[:results] : {}
    else
      response.return!(request, result, &block)
    end
  end
end
header_map() click to toggle source
# File lib/ididthis/api.rb, line 83
def header_map
  {
    :content_type => :json,
    :accept => :json,
    :Authorization => "Token #{@token}"
  }
end
post_done(done, team, options) click to toggle source
# File lib/ididthis/api.rb, line 55
def post_done(done, team, options)
  payload = { raw_text: done, team: team }.merge(options)
  RestClient.post(
    ENDPOINTS[:dones], payload.to_json, header_map) do |response|
    case response.code
    when 201
      puts "Posted your done!"
    else
      puts "Something went wrong, HTTP status code was #{response.code}."
    end
  end
end
team() click to toggle source
# File lib/ididthis/api.rb, line 41
def team
  RestClient.get(
    Ididthis::Config[:team], header_map
  ) do |response, request, result, &block|
    case response.code
    when 200
      resp = JSON.parse(response.body, :symbolize_names => true)
      resp[:ok] ? resp[:result] : {}
    else
      response.return!(request, result, &block)
    end
  end
end
teams() click to toggle source
# File lib/ididthis/api.rb, line 25
def teams
  RestClient.get(
    ENDPOINTS[:team], header_map
  ) do |response, request, result, &block|
    case response.code
    when 200
      resp = JSON.parse(response.body, :symbolize_names => true)
      # FIXME: This is not right, need to throw an error when no teams
      #   are found
      resp[:ok] ? resp[:results] : []
    else
      response.return!(request, result, &block)
    end
  end
end
validate_token() click to toggle source
# File lib/ididthis/api.rb, line 14
def validate_token
  RestClient.get(ENDPOINTS[:noop], header_map) do |response|
    case response.code
    when 200
      return true
    else
      return false
    end
  end
end