class PagSeguro::AuthorizationRequest::RequestSerializer
Attributes
builder[R]
request[RW]
Public Class Methods
new(request)
click to toggle source
# File lib/pagseguro/authorization_request/request_serializer.rb, line 7 def initialize(request) @request = request @builder = Nokogiri::XML::Builder end
Public Instance Methods
build_xml()
click to toggle source
# File lib/pagseguro/authorization_request/request_serializer.rb, line 12 def build_xml build.to_xml(save_with: Nokogiri::XML::Node::SaveOptions::NO_EMPTY_TAGS | Nokogiri::XML::Node::SaveOptions::FORMAT ) end
Private Instance Methods
build()
click to toggle source
# File lib/pagseguro/authorization_request/request_serializer.rb, line 23 def build builder.new(encoding: PagSeguro.encoding) do |xml| xml.send(:authorizationRequest) { xml.send(:reference, request.reference) if request.reference xml.send(:redirectURL, request.redirect_url) xml.send(:notificationURL, request.notification_url) serialize_permissions(xml, request.permissions) serialize_account(xml, request.account) } end end
format_permissions(permissions)
click to toggle source
# File lib/pagseguro/authorization_request/request_serializer.rb, line 44 def format_permissions(permissions) permissions.map { |value| PagSeguro::AuthorizationRequest::PERMISSIONS[value] } end
serialize_account(xml, account)
click to toggle source
# File lib/pagseguro/authorization_request/request_serializer.rb, line 48 def serialize_account(xml, account) return unless account xml.send(:account) { xml.send(:email, account.email) if account.email xml.send(:type, account.type) if account.type if account.person serialize_person(xml, account.person) elsif account.company serialize_company(xml, account.company) end } end
serialize_address(xml, address)
click to toggle source
# File lib/pagseguro/authorization_request/request_serializer.rb, line 89 def serialize_address(xml, address) return unless address xml.send(:address) { xml.send(:postalCode, address.postal_code) if address.postal_code xml.send(:street, address.street) if address.street xml.send(:number, address.number) if address.number xml.send(:complement, address.complement) if address.complement xml.send(:district, address.district) if address.district xml.send(:city, address.city) if address.city xml.send(:state, address.state) if address.state xml.send(:country, address.country) if address.country } end
serialize_company(xml, company)
click to toggle source
# File lib/pagseguro/authorization_request/request_serializer.rb, line 75 def serialize_company(xml, company) return unless company xml.send(:company) { xml.send(:name, company.name) if company.name xml.send(:displayName, company.display_name) if company.display_name xml.send(:websiteURL, company.website_url) if company.website_url serialize_partner(xml, company.partner) serialize_phones(xml, company.phones) serialize_documents(xml, company.documents) serialize_address(xml, company.address) } end
serialize_documents(xml, documents)
click to toggle source
# File lib/pagseguro/authorization_request/request_serializer.rb, line 118 def serialize_documents(xml, documents) return unless documents.any? xml.send(:documents) { documents.each do |document| xml.send(:document) { xml.send(:type, document.type) xml.send(:value, document.value) } end } end
serialize_partner(xml, partner)
click to toggle source
# File lib/pagseguro/authorization_request/request_serializer.rb, line 131 def serialize_partner(xml, partner) return unless partner xml.send(:partner) { xml.send(:name, partner.name) if partner.name xml.send(:birthDate, partner.birth_date.to_s) if partner.birth_date serialize_documents(xml, partner.documents) } end
serialize_permissions(xml, permissions)
click to toggle source
# File lib/pagseguro/authorization_request/request_serializer.rb, line 35 def serialize_permissions(xml, permissions) return unless permissions.any? xml.send(:permissions) { format_permissions(permissions).each do |permission| xml.send(:code, permission) end } end
serialize_person(xml, person)
click to toggle source
# File lib/pagseguro/authorization_request/request_serializer.rb, line 63 def serialize_person(xml, person) return unless person xml.send(:person) { xml.send(:name, person.name) if person.name xml.send(:birthDate, person.birth_date.to_s) if person.birth_date serialize_address(xml, person.address) serialize_documents(xml, person.documents) serialize_phones(xml, person.phones) } end
serialize_phones(xml, phones)
click to toggle source
# File lib/pagseguro/authorization_request/request_serializer.rb, line 104 def serialize_phones(xml, phones) return unless phones.any? xml.send(:phones) { phones.each do |phone| xml.send(:phone) { xml.send(:type, phone.type) xml.send(:areaCode, phone.area_code) xml.send(:number, phone.number) } end } end