class Papapi::Affiliate

Constants

A_ALLOWED_FIELDS
M_ALLOWED_FIELDS

Attributes

response[RW]

Public Class Methods

new(session, response = nil) click to toggle source
# File lib/papapi/affiliate.rb, line 16
def initialize(session, response = nil)
  @session = session
  if @session.is_affiliate?
    @load_class = 'Pap_Affiliates_Profile_PersonalDetailsForm'
    @save_class = 'Pap_Affiliates_Profile_PersonalDetailsForm'
  else
    @load_class = 'Pap_Signup_AffiliateForm'
    @save_class = 'Pap_Merchants_User_AffiliateForm'
  end
  @response = response
  @user_id = nil
  @update_fields = {}
end

Public Instance Methods

[](key) click to toggle source
# File lib/papapi/affiliate.rb, line 93
def [] (key)
  @response ? @response[key.to_sym] : nil
end
[]=(key, value) click to toggle source
# File lib/papapi/affiliate.rb, line 98
def []= (key, value)
  raise "Field #{key} can not be modified" if (@session.is_affiliate? && ! A_ALLOWED_FIELDS.include?(key.to_sym)) ||
                                              (@session.is_merchant? && ! M_ALLOWED_FIELDS.include?(key.to_sym))
  @update_fields[key.to_sym] = value
end
getLoginKey() click to toggle source
# File lib/papapi/affiliate.rb, line 77
def getLoginKey
  raise "Merchant session is required"  if @session.is_affiliate?

  request = Papapi::FormRequest.new('Pap_Auth_LoginKeyService', 'getLoginKey', @session)
  request.set_param("userId", self.id)

  response = request.send

  return response[:LoginKey]
end
id() click to toggle source
# File lib/papapi/affiliate.rb, line 73
def id
  @response ? @response[:userid] : @user_id
end
id=(user_id) click to toggle source
# File lib/papapi/affiliate.rb, line 88
def id=(user_id)
  @user_id = user_id
end
load() click to toggle source
# File lib/papapi/affiliate.rb, line 31
def load
  request = Papapi::FormRequest.new(@load_class, 'load', @session)

  unless @user_id.nil?
    request.set_field("Id", @user_id)
    request.set_field("userid", @user_id)
  end

  @response = request.send
  self
end
save() click to toggle source
# File lib/papapi/affiliate.rb, line 44
def save
  raise "Affiliate id is required" if @session.is_merchant? && ! self.id

  request = Papapi::FormRequest.new(@save_class, 'save', @session)

  if @response
    @response.fields.each do |key, value|
      request.set_field(key, value) if (@session.is_affiliate? && A_ALLOWED_FIELDS.include?(key.to_sym)) ||
                                        (@session.is_merchant? && M_ALLOWED_FIELDS.include?(key.to_sym))
    end
  end

  @update_fields.each do |key, value|
    request.set_field(key, value) if (@session.is_affiliate? && A_ALLOWED_FIELDS.include?(key.to_sym)) ||
                                      (@session.is_merchant? && M_ALLOWED_FIELDS.include?(key.to_sym))
  end

  if @session.is_affiliate?
    request.set_field("Id", "")
  else
    request.set_field("Id", self.id)
  end

  @response = request.send
  @update_fields = {}
  self
end
to_h() click to toggle source
# File lib/papapi/affiliate.rb, line 104
def to_h
  response ? response.to_h : {}
end