module Teambition::API

Mix-in module to introduce Teambition APIs

Attributes

token[RW]

@return [String] teambition token of given user

Public Instance Methods

delete(path) click to toggle source

DELETE @param path [String] @return [Hash] @raise JSON::ParserError

# File lib/teambition/api.rb, line 66
def delete(path)
  uri = URI.join(API_DOMAIN, path + "?access_token=#{token}")

  req = Net::HTTP::Delete.new(uri)
  res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |https|
    https.request(req)
  end
  JSON.parse(res.body)
end
get(path) click to toggle source

GET @param path [String] @raise JSON::ParserError

# File lib/teambition/api.rb, line 23
def get(path)
  uri = URI.join(API_DOMAIN, path + "?access_token=#{token}")
  JSON.parse(Net::HTTP.get(uri))
end
post(path, params = {}) click to toggle source

POST @param path [String] @param params [Hash] @return [Hash] @raise JSON::ParserError

# File lib/teambition/api.rb, line 33
def post(path, params = {})
  uri = URI.join(API_DOMAIN, path + "?access_token=#{token}")

  req = Net::HTTP::Post.new(uri)
  req.set_form_data(params)

  res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |https|
    https.request(req)
  end
  JSON.parse(res.body)
end
put(path, params = {}) click to toggle source

PUT @param path [String] @param params [Hash] @return [Hash] @raise JSON::ParserError

# File lib/teambition/api.rb, line 50
def put(path, params = {})
  uri = URI.join(API_DOMAIN, path + "?access_token=#{token}")

  req = Net::HTTP::Put.new(uri)
  req.set_form_data(params)

  res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |https|
    https.request(req)
  end
  JSON.parse(res.body)
end
valid_token?() click to toggle source

Validate the token

# File lib/teambition/api.rb, line 8
def valid_token?
  uri = URI.join(Teambition::API_DOMAIN, "/api/applications/#{Teambition.client_key}/tokens/check")

  req = Net::HTTP::Get.new(uri)
  req['Authorization'] = "OAuth2 #{token}"

  res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |https|
    https.request(req)
  end
  res.code == '200'
end