class Adyen::API::RecurringService::ListResponse

Public Instance Methods

params() click to toggle source
    # File lib/adyen/api/recurring_service.rb
102 def params
103   @params ||= xml_querier.xpath('//recurring:listRecurringDetailsResponse/recurring:result') do |result|
104     details = result.xpath('.//recurring:RecurringDetail')
105     details.empty? ? {} : {
106       :creation_date            => DateTime.parse(result.text('./recurring:creationDate')),
107       :details                  => details.map { |node| parse_recurring_detail(node) },
108       :last_known_shopper_email => result.text('./recurring:lastKnownShopperEmail'),
109       :shopper_reference        => result.text('./recurring:shopperReference')
110     }
111   end
112 end
references() click to toggle source
    # File lib/adyen/api/recurring_service.rb
 98 def references
 99   details ? details.map { |d| d[:recurring_detail_reference] } : []
100 end

Private Instance Methods

parse_additional_data(xpath) click to toggle source
    # File lib/adyen/api/recurring_service.rb
169 def parse_additional_data(xpath)
170   if xpath.empty?
171     {}
172   else
173     results = {}
174     xpath.map do |node|
175       key = node.text('./recurring:entry/recurring:key')
176       value = node.text('./recurring:entry/recurring:value')
177       results[key] = value unless key.empty?
178     end
179 
180     results
181   end
182 end
parse_bank_details(bank) click to toggle source
    # File lib/adyen/api/recurring_service.rb
157 def parse_bank_details(bank)
158   {
159     :number           => bank.text('./payment:bankAccountNumber'),
160     :bank_location_id => bank.text('./payment:bankLocationId'),
161     :bank_name        => bank.text('./payment:bankName'),
162     :bic              => bank.text('./payment:bic'),
163     :country_code     => bank.text('./payment:countryCode'),
164     :iban             => bank.text('./payment:iban'),
165     :holder_name      => bank.text('./payment:ownerName')
166   }
167 end
parse_card_details(card) click to toggle source
    # File lib/adyen/api/recurring_service.rb
139 def parse_card_details(card)
140   {
141     :expiry_date => Date.new(card.text('./payment:expiryYear').to_i, card.text('./payment:expiryMonth').to_i, -1),
142     :holder_name => card.text('./payment:holderName'),
143     :number      => card.text('./payment:number')
144   }
145 end
parse_elv_details(elv) click to toggle source
    # File lib/adyen/api/recurring_service.rb
147 def parse_elv_details(elv)
148   {
149     :holder_name      => elv.text('./payment:accountHolderName'),
150     :number           => elv.text('./payment:bankAccountNumber'),
151     :bank_location    => elv.text('./payment:bankLocation'),
152     :bank_location_id => elv.text('./payment:bankLocationId'),
153     :bank_name        => elv.text('./payment:bankName')
154   }
155 end
parse_recurring_detail(node) click to toggle source
    # File lib/adyen/api/recurring_service.rb
116 def parse_recurring_detail(node)
117   result = {
118     :recurring_detail_reference => node.text('./recurring:recurringDetailReference'),
119     :variant                    => node.text('./recurring:variant'),
120     :creation_date              => DateTime.parse(node.text('./recurring:creationDate')),
121     :additional_data            => parse_additional_data(node.xpath('./recurring:additionalData'))
122   }
123 
124   card = node.xpath('./recurring:card')
125   elv  = node.xpath('./recurring:elv')  
126   bank = node.xpath('./recurring:bank')        
127   
128   if !card.children.empty?
129     result[:card] = parse_card_details(card)
130   elsif !elv.children.empty?
131     result[:elv] = parse_elv_details(elv)
132   else
133     result[:bank] = parse_bank_details(bank)
134   end
135   
136   result
137 end