Sha256: c63eb3400957d66d32723adb4c5c82bf73a527179ad3b6b4ebee9b61874a54c9

Contents?: true

Size: 912 Bytes

Versions: 8

Compression:

Stored size: 912 Bytes

Contents

module Chargify
  class Coupon < Base
    def self.find_all_by_product_family_id(product_family_id)
      Coupon.find(:all, :params => { :product_family_id => product_family_id })
    end
    
    def self.find_by_product_family_id_and_code(product_family_id, code)
      find(:one, :from => :lookup, :params => {:product_family_id => product_family_id, :code => code})
    end

    def self.validate(params = {})
      product_family_id = params.fetch(:product_family_id, nil)
      coupon_code = params.fetch(:coupon_code, nil)

      raise ArgumentError, 'coupon_code is a required argument' if coupon_code.blank?

      params = {:coupon_code => coupon_code}
      params.merge!(:product_family_id => product_family_id) if product_family_id.present?

      find :one, :from => :validate, :params => params
    end

    def usage
      get :usage
    end

    def archive
      self.destroy
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
chargify_api_ares-1.0.4 lib/chargify_api_ares/resources/coupon.rb
chargify_api_ares-1.0.3 lib/chargify_api_ares/resources/coupon.rb
chargify_api_ares-1.0.2 lib/chargify_api_ares/resources/coupon.rb
chargify_api_ares-1.0.1 lib/chargify_api_ares/resources/coupon.rb
chargify_api_ares-1.0.0 lib/chargify_api_ares/resources/coupon.rb
chargify_api_ares-0.6.1 lib/chargify_api_ares/resources/coupon.rb
chargify_api_ares-0.6.0 lib/chargify_api_ares/resources/coupon.rb
chargify_api_ares-0.5.4 lib/chargify_api_ares/resources/coupon.rb