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.
13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/versacommerce_api/session.rb', line 13 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.
10 11 12 |
# File 'lib/versacommerce_api/session.rb', line 10 def name @name end |
#token ⇒ Object
Returns the value of attribute token.
10 11 12 |
# File 'lib/versacommerce_api/session.rb', line 10 def token @token end |
#url ⇒ Object
Returns the value of attribute url.
10 11 12 |
# File 'lib/versacommerce_api/session.rb', line 10 def url @url end |
Class Method Details
.request_token(domain) ⇒ Object
31 32 33 34 35 36 37 38 39 |
# File 'lib/versacommerce_api/session.rb', line 31 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
26 27 28 |
# File 'lib/versacommerce_api/session.rb', line 26 def self.setup(params) params.each { |k,value| send("#{k}=", value) } end |
Instance Method Details
#create_permission_url ⇒ Object
47 48 49 50 |
# File 'lib/versacommerce_api/session.rb', line 47 def return nil if url.blank? || api_key.blank? "http://#{url}/api/auth?api_key=#{api_key}" end |
#shop ⇒ Object
42 43 44 |
# File 'lib/versacommerce_api/session.rb', line 42 def shop Shop.current end |
#site ⇒ Object
Used by ActiveResource::Base to make all non-authentication API calls
54 55 56 |
# File 'lib/versacommerce_api/session.rb', line 54 def site "#{protocol}://#{api_key}:#{computed_password}@#{url}/api/" end |
#valid? ⇒ Boolean
59 60 61 |
# File 'lib/versacommerce_api/session.rb', line 59 def valid? url.present? && token.present? end |