class Giddy::Mediator
Constants
- ROOTPATH
Attributes
secure_token[R]
token[R]
Public Class Methods
new(username, password, token=nil, secure_token=nil)
click to toggle source
# File lib/giddy/mediator.rb, line 6 def initialize(username, password, token=nil, secure_token=nil) @username = username @password = password @token = token @secure_token = secure_token @system_id = nil @system_password = nil end
Public Instance Methods
create_session()
click to toggle source
# File lib/giddy/mediator.rb, line 20 def create_session data = { :SystemId => @system_id || Giddy.config.system_id, :SystemPassword => @system_password || Giddy.config.system_password, :UserName => @username, :UserPassword => @password } result = fetch "session", nil, nil, :CreateSession, data unless result["ResponseHeader"]["Status"] == "success" raise error_type(result), "Error authenticating: #{result["ResponseHeader"]}" end @token = result["CreateSessionResult"]["Token"] @secure_token = result["CreateSessionResult"]["SecureToken"] end
error_type(result)
click to toggle source
# File lib/giddy/mediator.rb, line 54 def error_type(result) statuses = result["ResponseHeader"]["StatusList"].map { |s| s["Code"] } return ImageNotFound if statuses.include? "ImageNotFound" return InvalidUsernameOrPassword if statuses.include? "InvalidUsernameOrPassword" InvalidRequest end
fetch(path, token, bodyname, name, data)
click to toggle source
# File lib/giddy/mediator.rb, line 61 def fetch(path, token, bodyname, name, data) body = { :RequestHeader => { :Token => token }, "#{bodyname || name}RequestBody" => data } headers = { 'Content-Type' => 'application/json' } url = "#{ROOTPATH}/#{path}/#{name}" HTTParty.post(url, :body => body.to_json, :headers => headers) end
gettyup(path, name, data, bodyname, secure)
click to toggle source
# File lib/giddy/mediator.rb, line 35 def gettyup(path, name, data, bodyname, secure) token = secure ? @secure_token : @token if token.nil? create_session token = secure ? @secure_token : @token end result = fetch(path, token, bodyname, name, data) if reauth_needed?(result) create_session gettyup path, name, data, bodyname, secure elsif result["ResponseHeader"]["Status"] == "success" result["#{name}Result"] else raise error_type(result), "Error fetching #{name}: #{result["ResponseHeader"]}" end end
reauth_needed?(result)
click to toggle source
# File lib/giddy/mediator.rb, line 68 def reauth_needed?(result) return true if result.body == "<h1>Developer Inactive</h1>" reauth_codes = [ "AUTH-012", "AUTH-010" ] if result["ResponseHeader"]["StatusList"].length > 0 reauth_codes.include? result["ResponseHeader"]["StatusList"].first["Code"] else false end end
set_system_credentials(system_id, system_password)
click to toggle source
# File lib/giddy/mediator.rb, line 15 def set_system_credentials(system_id, system_password) @system_id = system_id @system_password = system_password end