Class: OAuth::AccessToken

Inherits:
ConsumerToken show all
Defined in:
lib/oauth/token.rb

Overview

The Access Token is used for the actual “real” web service calls thatyou perform against the server

Instance Attribute Summary

Attributes inherited from ConsumerToken

#consumer

Attributes inherited from Token

#secret, #token

Instance Method Summary collapse

Methods inherited from ConsumerToken

#initialize, #sign!

Methods inherited from Token

#initialize, #to_query

Methods included from Helper

#escape, #generate_key

Constructor Details

This class inherits a constructor from OAuth::ConsumerToken

Instance Method Details

#delete(path, headers = {}) ⇒ Object

Make a regular delete request using AccessToken

@response=@token.delete('/people/123')
@response=@token.delete('/people/123',{'Accept'=>'application/xml'})


133
134
135
# File 'lib/oauth/token.rb', line 133

def delete(path,headers={})
  request(:delete,path,headers)
end

#get(path, headers = {}) ⇒ Object

Make a regular get request using AccessToken

@response=@token.get('/people')
@response=@token.get('/people',{'Accept'=>'application/xml'})


92
93
94
# File 'lib/oauth/token.rb', line 92

def get(path,headers={})
  request(:get,path,headers)
end

#head(path, headers = {}) ⇒ Object

Make a regular head request using AccessToken

@response=@token.head('/people')


100
101
102
# File 'lib/oauth/token.rb', line 100

def head(path,headers={})
  request(:head,path,headers)
end

#post(path, body = '', headers = {}) ⇒ Object

Make a regular post request using AccessToken

@response=@token.post('/people')
@response=@token.post('/people',{:name=>'Bob',:email=>'[email protected]'})
@response=@token.post('/people',{:name=>'Bob',:email=>'[email protected]'},{'Accept'=>'application/xml'})
@response=@token.post('/people',nil,{'Accept'=>'application/xml'})
@response=@token.post('/people',@person.to_xml,{'Accept'=>'application/xml','Content-Type' => 'application/xml'})


112
113
114
# File 'lib/oauth/token.rb', line 112

def post(path, body = '',headers={})
  request(:post,path,body,headers)
end

#put(path, body = '', headers = {}) ⇒ Object

Make a regular put request using AccessToken

@response=@token.put('/people/123')
@response=@token.put('/people/123',{:name=>'Bob',:email=>'[email protected]'})
@response=@token.put('/people/123',{:name=>'Bob',:email=>'[email protected]'},{'Accept'=>'application/xml'})
@response=@token.put('/people/123',nil,{'Accept'=>'application/xml'})
@response=@token.put('/people/123',@person.to_xml,{'Accept'=>'application/xml','Content-Type' => 'application/xml'})


124
125
126
# File 'lib/oauth/token.rb', line 124

def put(path, body = '', headers={})
  request(:put,path,body,headers)
end

#request(http_method, path, *arguments) ⇒ Object

The less intrusive way. Otherwise, if we are to do it correctly inside consumer, we need to restructure and touch more methods: request(), sign!(), etc.



75
76
77
78
79
80
81
82
83
84
85
# File 'lib/oauth/token.rb', line 75

def request(http_method, path, *arguments)
  request_uri = URI.parse(path)
  site_uri = consumer.uri
  is_service_uri_different = (request_uri.absolute? && request_uri != site_uri)
  consumer.uri(request_uri) if is_service_uri_different
  resp = super(http_method, path, *arguments)
  # NOTE: reset for wholesomeness? meaning that we admit only AccessToken service calls may use different URIs?
  # so reset in case consumer is still used for other token-management tasks subsequently?
  consumer.uri(site_uri) if is_service_uri_different
  resp
end