Guest User

Untitled

a guest
Feb 18th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1. module Integration
  2. class Transaction
  3. def initialize
  4. @connection = Integration::Connection.new
  5. end
  6. def create!(registration, card)
  7. message = xml_builder("requisicao-transacao") do |xml|
  8. xml.numero registration.id
  9. xml.valor registration.training_class.price.to_i * 100
  10. xml.moeda "986"
  11. # ... MONTA UM XML COMPLEXO ...
  12. end
  13. make_request! message
  14. end
  15.  
  16. private
  17. def make_request!(message)
  18. params = { mensagem: message.target! }
  19.  
  20. # ... FAZ MAIS COISAS AQUI ...
  21.  
  22. result = @connection.request! params
  23. parse_response(result)
  24. end
  25.  
  26. def parse_response(response)
  27. case response
  28. when Net::HTTPSuccess
  29. document = REXML::Document.new(response.body)
  30. parse_elements(document.elements)
  31. else
  32. {:erro => { :mensagem => "Impossível contactar o servidor"}}
  33. end
  34. end
  35.  
  36. def parse_elements(elements)
  37. map={}
  38. elements.each do |element|
  39. element_map = {}
  40. # ... FAZ ALGO COM OS ELEMENTOS DO XML ...
  41. map.merge!(element.name => element_map)
  42. end
  43. map.symbolize_keys
  44. end
  45. end
  46. end
Add Comment
Please, Sign In to add comment