Sha256: 2ae70b414cc966566bec739cfeec3b8c0efe7be925b7148c023f987a0dd0a464

Contents?: true

Size: 1.78 KB

Versions: 2

Compression:

Stored size: 1.78 KB

Contents

module EasyPayULatam
  class PayuPayment < ApplicationRecord
    PENDING = 0
    APPROVED = 1
    REJECTED = 2

    validates :amount, :currency, :user_id, :description, presence: true

    def approved
      self.status == APPORVED
    end

    def rejected
      self.status == REJECTED
    end

    def pending
      self.status == PENDING
    end

    def add_charge(params, user)
      @payUConfig = EasyPayULatam.configuration

      client = RApi::Client.new user.pay_u_costumer_id
      addcharge = RApi::AdditionalCharge.new client, self.reference_recurring_payment
      addcharge.params = {
        "description" => params[:description],
        "additionalValues" => [
          {
            "name" => "ITEM_VALUE",
            "value" => params[:value],
            "currency" => "COP"
          },
          {
            "name" => "ITEM_TAX",
            "value" => "0",
            "currency" => "COP"
          },
          {
            "name" => "ITEM_TAX_RETURN_BASE",
            "value" => "0",
            "currency" => "COP"
          }
        ]
      }

      addcharge.create!

      unless addcharge.response["id"].blank?
        self.additional_charges_data = "#{self.additional_charges_data}|#{addcharge.response["id"]}·#{Date.today}"
      end

      addcharge
    end

    def get_additional_charges
      charges = []
      self.additional_charges_data.split("|").each do |charge|
        data = charge.split("·")
        charges.push({id: data[0], date: data[1]})
      end
      charges
    end

    def remove_charge(id, user)
      @payUConfig = EasyPayULatam.configuration

      client = RApi::Client.new user.pay_u_costumer_id
      addcharge = RApi::AdditionalCharge.new client, self.reference_recurring_payment

      addcharge.delete id

      addcharge
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
easy_pay_u_latam-0.1.28 app/models/easy_pay_u_latam/payu_payment.rb
easy_pay_u_latam-0.1.27 app/models/easy_pay_u_latam/payu_payment.rb