lib/mangopay/authorization_token.rb in mangopay-3.0.25 vs lib/mangopay/authorization_token.rb in mangopay-3.0.26
- old
+ new
@@ -1,88 +1,88 @@
-module MangoPay
- module AuthorizationToken
-
- # See http://docs.mangopay.com/api-references/authenticating/
- class Manager
-
- class << self
- def storage
- @@storage ||= StaticStorage.new
- end
-
- def storage= (storage)
- @@storage = storage
- end
-
- def get_token
- token = storage.get
- env_key = get_environment_key_for_token
- if token.nil? || token['timestamp'].nil? || token['timestamp'] <= Time.now || token['environment_key'] != env_key
- token = MangoPay.request(:post, "/#{MangoPay.version_code}/oauth/token", {}, {}, {}, Proc.new do |req|
- cfg = MangoPay.configuration
- req.basic_auth cfg.client_id, cfg.client_passphrase
- req.body = 'grant_type=client_credentials'
- end)
- token['timestamp'] = Time.now + (token['expires_in'].to_i - 10)
- token['environment_key'] = env_key
- storage.store token
- end
- token
- end
-
- def get_environment_key_for_token
- cfg = MangoPay.configuration
- key = "#{cfg.root_url}|#{cfg.client_id}|#{cfg.client_passphrase}"
- key = Digest::MD5.hexdigest(key)
- key
- end
- end
- end
-
- class StaticStorage
- def get
- @@token ||= nil
- end
-
- def store(token)
- @@token = token
- end
- end
-
- class FileStorage
- require 'yaml'
- @temp_dir
-
- def initialize(temp_dir = nil)
- @temp_dir = temp_dir || MangoPay.configuration.temp_dir
- if !@temp_dir
- raise "Path to temporary folder is not defined"
- end
- end
-
- def get
- begin
- f = File.open(file_path, File::RDONLY)
- f.flock(File::LOCK_SH)
- txt = f.read
- f.close
- YAML.load(txt) || nil
- rescue Errno::ENOENT
- nil
- end
- end
-
- def store(token)
- File.open(file_path, File::RDWR|File::CREAT, 0644) do |f|
- f.flock(File::LOCK_EX)
- f.truncate(0)
- f.rewind
- f.puts(YAML.dump(token))
- end
- end
-
- def file_path
- File.join(@temp_dir, "MangoPay.AuthorizationToken.FileStore.tmp")
- end
- end
- end
-end
+module MangoPay
+ module AuthorizationToken
+
+ # See http://docs.mangopay.com/api-references/authenticating/
+ class Manager
+
+ class << self
+ def storage
+ @@storage ||= StaticStorage.new
+ end
+
+ def storage= (storage)
+ @@storage = storage
+ end
+
+ def get_token
+ token = storage.get
+ env_key = get_environment_key_for_token
+ if token.nil? || token['timestamp'].nil? || token['timestamp'] <= Time.now || token['environment_key'] != env_key
+ token = MangoPay.request(:post, "/#{MangoPay.version_code}/oauth/token", {}, {}, {}, Proc.new do |req|
+ cfg = MangoPay.configuration
+ req.basic_auth cfg.client_id, cfg.client_passphrase
+ req.body = 'grant_type=client_credentials'
+ end)
+ token['timestamp'] = Time.now + (token['expires_in'].to_i - 10)
+ token['environment_key'] = env_key
+ storage.store token
+ end
+ token
+ end
+
+ def get_environment_key_for_token
+ cfg = MangoPay.configuration
+ key = "#{cfg.root_url}|#{cfg.client_id}|#{cfg.client_passphrase}"
+ key = Digest::MD5.hexdigest(key)
+ key
+ end
+ end
+ end
+
+ class StaticStorage
+ def get
+ @@token ||= nil
+ end
+
+ def store(token)
+ @@token = token
+ end
+ end
+
+ class FileStorage
+ require 'yaml'
+ @temp_dir
+
+ def initialize(temp_dir = nil)
+ @temp_dir = temp_dir || MangoPay.configuration.temp_dir
+ if !@temp_dir
+ raise "Path to temporary folder is not defined"
+ end
+ end
+
+ def get
+ begin
+ f = File.open(file_path, File::RDONLY)
+ f.flock(File::LOCK_SH)
+ txt = f.read
+ f.close
+ YAML.load(txt) || nil
+ rescue Errno::ENOENT
+ nil
+ end
+ end
+
+ def store(token)
+ File.open(file_path, File::RDWR|File::CREAT, 0644) do |f|
+ f.flock(File::LOCK_EX)
+ f.truncate(0)
+ f.rewind
+ f.puts(YAML.dump(token))
+ end
+ end
+
+ def file_path
+ File.join(@temp_dir, "MangoPay.AuthorizationToken.FileStore.tmp")
+ end
+ end
+ end
+end