Sha256: dda214ca654af76fa7b7232257e9a5fccd1e5f5d60d70f7af503dcfd9e7d3994

Contents?: true

Size: 1.68 KB

Versions: 19

Compression:

Stored size: 1.68 KB

Contents

class ZapiEmployee

  attr_reader :response, :zapi, :generate_xml, :responder

  def initialize username:, password:, zapi: nil, xml_generator: nil, responder: nil
    @zapi = zapi || Zapi.new()
    @generate_xml = xml_generator  || ZapiXML.new()
    @responder = responder || ZapiObject
    @response = _login username: username, password: password
  end

  def is_logged_in?
    response_msg == "Login Successful" && _method_name == 'zapiMobileLogin'
  end

  def response_msg
    response.try(:[],'methodErrorMessage')
  end

  def session_hash
    {
      user_id: _user_id,
      account_id: _account_id,
      account_type: _account_type,
      cart_id: _cart_id,
      api_token: _api_token,
      username: _username,
      firstname: _firstname,
      lastname: _lastname,
      fullname: _fullname
    }
  end

  def session hash: session_hash
    responder.new(hash: hash)
  end

  def _login username:, password:
    login_xml = generate_xml.agent_login(username: username, password: Digest::MD5.hexdigest(password))
    zapi.request(xml: login_xml)
  end

  def _user_id
    response.try(:[],'zapiUserId').to_i
  end

  def _account_id
    response.try(:[],'zapiAccountId').to_i
  end

  def _account_type
    response.try(:[],'zapiAccountType').to_i
  end

  def _cart_id
    response.try(:[],'cartId')
  end

  def _api_token
    response.try(:[],'zapiApiToken')
  end

  def _username
    response.try(:[],'zapiUsername')
  end

  def _firstname
    response.try(:[],'firstName')
  end

  def _lastname
    response.try(:[],'lastName')
  end

  def _fullname
    [_firstname, _lastname].compact.join(" ") if _firstname || _lastname
  end

  def _method_name
    response.try(:[],'methodName')
  end

end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
zaui_zapi-0.3.1 lib/zapi_employee.rb
zaui_zapi-0.3.0 lib/zapi_employee.rb
zaui_zapi-0.2.8 lib/zapi_employee.rb
zaui_zapi-0.2.7 lib/zapi_employee.rb
zaui_zapi-0.2.6 lib/zapi_employee.rb
zaui_zapi-0.2.5 lib/zapi_employee.rb
zaui_zapi-0.2.4 lib/zapi_employee.rb
zaui_zapi-0.2.1 lib/zapi_employee.rb
zaui_zapi-0.1.14 lib/zapi_employee.rb
zaui_zapi-0.1.13 lib/zapi_employee.rb
zaui_zapi-0.1.12 lib/zapi_employee.rb
zaui_zapi-0.1.11 lib/zapi_employee.rb
zaui_zapi-0.1.9 lib/zapi_employee.rb
zaui_zapi-0.1.7 lib/zapi_employee.rb
zaui_zapi-0.1.6 lib/zapi_employee.rb
zaui_zapi-0.1.5 lib/zapi_employee.rb
zaui_zapi-0.1.4 lib/zapi_employee.rb
zaui_zapi-0.1.1 lib/zapi_employee.rb
zaui_zapi-0.1.0 lib/zapi_employee.rb