Class: Lago::Api::Resources::Coupon

Inherits:
Base
  • Object
show all
Defined in:
lib/lago/api/resources/coupon.rb

Instance Attribute Summary

Attributes inherited from Base

#client

Instance Method Summary collapse

Methods inherited from Base

#create, #destroy, #get, #get_all, #initialize, #update

Constructor Details

This class inherits a constructor from Lago::Api::Resources::Base

Instance Method Details

#api_resourceObject



7
8
9
# File 'lib/lago/api/resources/coupon.rb', line 7

def api_resource
  'coupons'
end

#root_nameObject



11
12
13
# File 'lib/lago/api/resources/coupon.rb', line 11

def root_name
  'coupon'
end

#whitelist_limitations(limitation_params) ⇒ Object



39
40
41
# File 'lib/lago/api/resources/coupon.rb', line 39

def whitelist_limitations(limitation_params)
  (limitation_params || {}).slice(:plan_codes, :billable_metric_codes)
end

#whitelist_params(params) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/lago/api/resources/coupon.rb', line 15

def whitelist_params(params)
  result_hash = {
    name: params[:name],
    code: params[:code],
    description: params[:description],
    amount_cents: params[:amount_cents],
    amount_currency: params[:amount_currency],
    percentage_rate: params[:percentage_rate],
    coupon_type: params[:coupon_type],
    reusable: params[:reusable],
    frequency: params[:frequency],
    frequency_duration: params[:frequency_duration],
    expiration: params[:expiration],
    expiration_at: params[:expiration_at],
    terminated_at: params[:terminated_at],
  }.compact

  whitelist_limitations(params[:applies_to]).tap do |limitations|
    result_hash[:applies_to] = limitations unless limitations.empty?
  end

  { root_name => result_hash }
end