Class: VersacommerceAPI::Session
- Inherits:
-
Object
- Object
- VersacommerceAPI::Session
- Defined in:
- lib/versacommerce_api/session.rb
Instance Attribute Summary collapse
-
#name ⇒ Object
Returns the value of attribute name.
-
#token ⇒ Object
Returns the value of attribute token.
-
#url ⇒ Object
Returns the value of attribute url.
Class Method Summary collapse
Instance Method Summary collapse
- #create_permission_url ⇒ Object
-
#initialize(url, token = nil, params = nil) ⇒ Session
constructor
A new instance of Session.
- #shop ⇒ Object
-
#site ⇒ Object
Used by ActiveResource::Base to make all non-authentication API calls.
- #valid? ⇒ Boolean
Constructor Details
#initialize(url, token = nil, params = nil) ⇒ Session
Returns a new instance of Session.
12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/versacommerce_api/session.rb', line 12 def initialize(url, token = nil, params = nil) self.url, self.token = url, token if params && params[:signature] unless self.class.validate_signature(params) && params[:timestamp].to_i > 24.hours.ago.utc.to_i raise "Invalid Signature: Possible malicious login" end end self.class.prepare_url(self.url) end |
Instance Attribute Details
#name ⇒ Object
Returns the value of attribute name.
9 10 11 |
# File 'lib/versacommerce_api/session.rb', line 9 def name @name end |
#token ⇒ Object
Returns the value of attribute token.
9 10 11 |
# File 'lib/versacommerce_api/session.rb', line 9 def token @token end |
#url ⇒ Object
Returns the value of attribute url.
9 10 11 |
# File 'lib/versacommerce_api/session.rb', line 9 def url @url end |
Class Method Details
.request_token(domain) ⇒ Object
30 31 32 33 34 35 36 37 38 |
# File 'lib/versacommerce_api/session.rb', line 30 def self.request_token(domain) return nil if domain.blank? || api_key.blank? begin content = open("http://#{domain}/api/auth.xml?api_key=#{api_key}") { |io| data = io.read } Hash.from_xml(content)["token"] if content rescue nil end end |
.setup(params) ⇒ Object
25 26 27 |
# File 'lib/versacommerce_api/session.rb', line 25 def self.setup(params) params.each { |k,value| send("#{k}=", value) } end |
Instance Method Details
#create_permission_url ⇒ Object
46 47 48 49 |
# File 'lib/versacommerce_api/session.rb', line 46 def return nil if url.blank? || api_key.blank? "http://#{url}/api/auth?api_key=#{api_key}" end |
#shop ⇒ Object
41 42 43 |
# File 'lib/versacommerce_api/session.rb', line 41 def shop Shop.current end |
#site ⇒ Object
Used by ActiveResource::Base to make all non-authentication API calls
53 54 55 |
# File 'lib/versacommerce_api/session.rb', line 53 def site "#{protocol}://#{api_key}:#{computed_password}@#{url}/api/" end |
#valid? ⇒ Boolean
58 59 60 |
# File 'lib/versacommerce_api/session.rb', line 58 def valid? url.present? && token.present? end |