class PagSeguro::Payment::Serializer
Attributes
payment[R]
The payment request that will be serialized.
Public Class Methods
new(payment)
click to toggle source
# File lib/pagseguro/payment/serializer.rb, line 7 def initialize(payment) @payment = payment @params = {} end
Public Instance Methods
to_params()
click to toggle source
# File lib/pagseguro/payment/serializer.rb, line 12 def to_params params[:notificationURL] = payment.notification_url params[:currency] = payment.currency params[:paymentMethod] = payment.payment_method params[:paymentMode] = payment.payment_mode params[:reference] = payment.reference params[:extraAmount] = payment.extra_amount params[:noInterestInstallmentQuantity] = payment.max_installment_no_interest payment.items.each.with_index(1) do |item, index| serialize_item(item, index) end serialize_sender(payment.sender) serialize_bank(payment.bank) serialize_credit_card(payment.credit_card) serialize_shipping(payment.shipping) params[:receiverEmail] = payment.receiver_email if payment.receiver_email params.delete_if {|key, value| value.nil? } params end
Private Instance Methods
params()
click to toggle source
# File lib/pagseguro/payment/serializer.rb, line 39 def params @params ||= {} end
serialize_address(address)
click to toggle source
# File lib/pagseguro/payment/serializer.rb, line 135 def serialize_address(address) return unless address params[:billingAddressCountry] = address.country params[:billingAddressState] = address.state params[:billingAddressCity] = address.city params[:billingAddressPostalCode] = address.postal_code params[:billingAddressDistrict] = address.district params[:billingAddressStreet] = address.street params[:billingAddressNumber] = address.number params[:billingAddressComplement] = address.complement end
serialize_address_shipping(address)
click to toggle source
# File lib/pagseguro/payment/serializer.rb, line 122 def serialize_address_shipping(address) return unless address params[:shippingAddressCountry] = address.country params[:shippingAddressState] = address.state params[:shippingAddressCity] = address.city params[:shippingAddressPostalCode] = address.postal_code params[:shippingAddressDistrict] = address.district params[:shippingAddressStreet] = address.street params[:shippingAddressNumber] = address.number params[:shippingAddressComplement] = address.complement end
serialize_bank(bank)
click to toggle source
# File lib/pagseguro/payment/serializer.rb, line 88 def serialize_bank(bank) return unless bank params[:bankName] = bank.name end
serialize_credit_card(credit_card)
click to toggle source
# File lib/pagseguro/payment/serializer.rb, line 94 def serialize_credit_card(credit_card) return unless credit_card params[:creditCardToken] = credit_card.token serialize_installment(credit_card.installment) serialize_holder(credit_card.holder) serialize_address(credit_card.billing_address) end
serialize_document(document)
click to toggle source
# File lib/pagseguro/payment/serializer.rb, line 72 def serialize_document(document) if document.cpf? params[:senderCPF] = document.value else params[:senderCNPJ] = document.value end end
serialize_holder(holder)
click to toggle source
# File lib/pagseguro/payment/serializer.rb, line 112 def serialize_holder(holder) return unless holder params[:creditCardHolderName] = holder.name params[:creditCardHolderCPF] = holder.document.value params[:creditCardHolderBirthDate] = holder.birthdate.strftime("%d/%m/%Y") if holder.birthdate params[:creditCardHolderAreaCode] = holder.phone.area_code params[:creditCardHolderPhone] = holder.phone.number end
serialize_installment(installment)
click to toggle source
# File lib/pagseguro/payment/serializer.rb, line 105 def serialize_installment(installment) return unless installment params[:installmentQuantity] = installment.quantity params[:installmentValue] = to_amount(installment.value) end
serialize_item(item, index)
click to toggle source
# File lib/pagseguro/payment/serializer.rb, line 52 def serialize_item(item, index) return unless item params["itemId#{index}".to_sym] = item.id params["itemDescription#{index}".to_sym] = item.description params["itemAmount#{index}".to_sym] = to_amount(item.amount) params["itemQuantity#{index}".to_sym] = item.quantity end
serialize_phone(phone)
click to toggle source
# File lib/pagseguro/payment/serializer.rb, line 80 def serialize_phone(phone) return unless phone params[:senderAreaCode] = phone.area_code params[:senderPhone] = phone.number end
serialize_sender(sender)
click to toggle source
# File lib/pagseguro/payment/serializer.rb, line 61 def serialize_sender(sender) return unless sender params[:senderName] = sender.name params[:senderEmail] = sender.email params[:senderHash] = sender.hash_id serialize_document(sender.document) serialize_phone(sender.phone) end
serialize_shipping(shipping)
click to toggle source
# File lib/pagseguro/payment/serializer.rb, line 43 def serialize_shipping(shipping) return unless shipping params[:shippingType] = shipping.type_id params[:shippingCost] = to_amount(shipping.cost) serialize_address_shipping(shipping.address) end
to_amount(amount)
click to toggle source
# File lib/pagseguro/payment/serializer.rb, line 148 def to_amount(amount) "%.2f" % BigDecimal(amount.to_s).round(2).to_s("F") if amount end