class TripIt::OAuth

Attributes

access_token[R]
consumer[R]

Public Class Methods

new(ctoken, csecret) click to toggle source
# File lib/trip_it/oauth.rb, line 6
def initialize(ctoken, csecret)
  @consumer = ::OAuth::Consumer.new(ctoken, csecret, :site => 'https://api.tripit.com')
end

Public Instance Methods

authorize_from_access(atoken, asecret) click to toggle source
# File lib/trip_it/oauth.rb, line 25
def authorize_from_access(atoken, asecret)
  @access_token = ::OAuth::AccessToken.new(consumer, atoken, asecret)
end
authorize_from_request(rtoken, rsecret, verifier) click to toggle source
# File lib/trip_it/oauth.rb, line 19
def authorize_from_request(rtoken, rsecret, verifier)
  request_token = ::OAuth::RequestToken.new(consumer, rtoken, rsecret)
  access = request_token.get_access_token(:oauth_verifier => verifier)
  @access_token = ::OAuth::AccessToken.new(consumer, access.token, access.secret)
end
create(param) click to toggle source

Only takes XML

# File lib/trip_it/oauth.rb, line 44
def create(param)
  request = access_token.post("/v1/create", "xml=<Request>#{URI.escape(param)}</Request>", {'Content-Type' => 'application/x-www-form-urlencoded'})
  returnResponse(request, "xml")
end
delete(resource, params={}) click to toggle source
# File lib/trip_it/oauth.rb, line 55
def delete(resource, params={})
  params.merge!(:format => "json")
  params_string = params.collect{|k, v| "#{k}/#{v}"}.join('/')
  request = access_token.get("/v1/delete#{resource}/#{URI.escape(params_string)}")
  returnResponse(request)
end
get(resource, params={}) click to toggle source
# File lib/trip_it/oauth.rb, line 29
def get(resource, params={})
  params.merge!(:format => "json")
  params_string = params.collect{|k, v| "#{k}/#{v}"}.join('/')
  request = access_token.get("/v1/get#{resource}/#{URI.escape(params_string)}")
  returnResponse(request)
end
list(resource, params={}) click to toggle source
# File lib/trip_it/oauth.rb, line 36
def list(resource, params={})
  params.merge!(:format => "json")
  params_string = params.collect{|k, v| "#{k}/#{v}"}.join('/')
  request = access_token.get("/v1/list#{resource}/#{URI.escape(params_string)}")
  returnResponse(request)
end
replace(resource, param) click to toggle source

Only takes XML

# File lib/trip_it/oauth.rb, line 50
def replace(resource, param)
  request = access_token.post("/v1/replace#{resource}", "xml=<Request>#{URI.escape(param)}</Request>", {'Content-Type' => 'application/x-www-form-urlencoded'})
  returnResponse(request, "xml")
end
request_token(options={}) click to toggle source
# File lib/trip_it/oauth.rb, line 15
def request_token(options={})
  @request_token ||= consumer.get_request_token(options)
end
returnResponse(request, format = "") click to toggle source
# File lib/trip_it/oauth.rb, line 72
def returnResponse(request, format = "")
  case request
  when Net::HTTPOK
    if format == "xml"
      return request.body
    else
      return JSON.parse(request.body) 
    end
  when Net::HTTPBadRequest
    raise BadRequestException, request.body
  when Net::HTTPUnauthorized
    raise UnauthorizedException, request.body
  when Net::HTTPNotFound
    raise NotFoundException, request.body
  when Net::HTTPInternalServerError
    raise ServerError, request.body
  when Net::HTTPForbidden
    raise ForbiddenException, request.body
  when Net::HTTPServiceUnavailable
    raise ServiceUnavailableError, request.body
  end
end
set_callback_url(url) click to toggle source
# File lib/trip_it/oauth.rb, line 10
def set_callback_url(url)
  @request_token = nil
  request_token(:oauth_callback => url)
end
subscribe(resource) click to toggle source
# File lib/trip_it/oauth.rb, line 62
def subscribe(resource)
  request = access_token.get("/v1/subscribe/type#{resource}")
  returnResponse(request)
end
unsubscribe() click to toggle source
# File lib/trip_it/oauth.rb, line 67
def unsubscribe
  request = access_token.get("/v1/unsubscribe")
  returnResponse(request)
end