class ElectricProfile::Reward

Constants

TYPES

Attributes

amount[RW]
autoClaim[RW]
autoDeliver[RW]
currency[RW]
customerId[RW]
delivered[RW]
deliveryErrors[RW]
error[RW]
id[RW]
recipientEmail[RW]
recipientId[RW]
rewardProfileId[RW]
transactionId[RW]
type[RW]

Public Class Methods

all() click to toggle source
# File lib/electric_profile_ruby/reward.rb, line 99
def self.all
  client = Client.new
  if client.fetch_rewards
    client.data["Items"].map { |atts| new atts }
  else
    raise StandardError, client.error
  end
end
find(id) click to toggle source
# File lib/electric_profile_ruby/reward.rb, line 90
def self.find(id)
  client = Client.new
  if client.fetch_reward(id)
    new client.data
  else
    raise StandardError, client.error
  end
end
new(atts) click to toggle source
# File lib/electric_profile_ruby/reward.rb, line 7
def initialize(atts)
  atts = atts.inject({}){ |memo, (k, v) | memo[k.to_sym] = v; memo }
  @id = atts[:id]
  @customerId = atts[:customerId]
  @rewardProfileId = atts[:rewardProfileId]
  @amount = atts[:amount]
  @currency = atts[:currency]
  @type = atts[:type]
  @recipientEmail = atts[:recipientEmail]
  @recipientId = atts[:recipientId]
  @autoClaim = atts[:autoClaim]
  @autoDeliver = atts[:autoDeliver]
  @delivered = atts[:delivered]
  @deliveryErrors = atts[:deliveryErrors]
  @transactionId = atts[:transactionId]
end

Public Instance Methods

initialize_client() click to toggle source
# File lib/electric_profile_ruby/reward.rb, line 108
def initialize_client
  @client ||= Client.new
end
queue_delivery() click to toggle source
# File lib/electric_profile_ruby/reward.rb, line 80
def queue_delivery
  initialize_client
  if @client.queue_reward_delivery(@id)
    true
  else
    @error = @client.error
    false
  end
end
save() click to toggle source
# File lib/electric_profile_ruby/reward.rb, line 24
def save
  if @id
    save_existing
  else
    save_new
  end
end
save_existing() click to toggle source
# File lib/electric_profile_ruby/reward.rb, line 55
def save_existing
  initialize_client
  attributes = {
    id: @id,
    customerId: @customerId,
    rewardProfileId: @rewardProfileId,
    amount: @amount,
    currency: @currency,
    type: @type,
    recipientEmail: @recipientEmail,
    recipientId: @recipientId,
    autoClaim: @autoClaim,
    autoDeliver: @autoDeliver,
    delivered: @delivered,
    deliveryErrors: @deliveryErrors,
    transactionId: @transactionId
  }
  if @client.update_reward(attributes)
    true
  else
    @error = @client.error
    false
  end
end
save_new() click to toggle source
# File lib/electric_profile_ruby/reward.rb, line 32
def save_new
  initialize_client
  attributes = {
    rewardProfileId: @rewardProfileId,
    amount: @amount,
    currency: @currency,
    type: @type,
    recipientEmail: @recipientEmail,
    recipientId: @recipientId,
    autoClaim: @autoClaim,
    autoDeliver: @autoDeliver
  }
  attributes = attributes.delete_if { |k, v| v.nil? }
  if @client.create_reward(attributes)
    @id = @client.data["data"]["id"]
    @customerId = @client.data["data"]["customerId"]
    true
  else
    @error = @client.error
    false
  end
end