class Nabortu::Methods::CreateAviaReserve

Public Instance Methods

do_prepare() click to toggle source
# File lib/nabortu/methods/create_avia_reserve.rb, line 22
def do_prepare
  @response[:reserve]
end
request(params = {}) click to toggle source
# File lib/nabortu/methods/create_avia_reserve.rb, line 4
      def request(params = {})
        persons   = params[:persons]   || raise(Nabortu::Errors::NoParam.new :persons)
        request   = params[:request]   || raise(Nabortu::Errors::NoParam.new :request)
        client_id = params[:client_id] || raise(Nabortu::Errors::NoParam.new :client_id)

        persons_xml = persons.map { |p| build_person(p) }

        <<-REQUEST
          <tns:Request>#{request}</tns:Request>
          <tns:Passengers>#{persons_xml.join('')}</tns:Passengers>
          <tns:Comment>#{Nabortu.config.reserve_comment}</tns:Comment>
          <tns:id_OnlinePaymentType>26</tns:id_OnlinePaymentType>
          <tns:id_client>#{client_id}</tns:id_client>
          <tns:PartnerMarker>nabortu</tns:PartnerMarker>
          <tns:BonusProgram></tns:BonusProgram>
        REQUEST
      end

Private Instance Methods

build_person(person) click to toggle source
# File lib/nabortu/methods/create_avia_reserve.rb, line 28
def build_person(person)
  person = Nokogiri::XML::Builder.new do |xml|
    xml.root('xmlns:tns' => Nabortu.config.ns){
      xml[:tns].Person{
        xml[:tns].id_Person   person.id
        xml[:tns].FirstName   person.first_name
        xml[:tns].LastName    person.last_name
        xml[:tns].Phone       person.phone
        xml[:tns].DateBirth   person.birth_date
        xml[:tns].id_Country  person.id_country
        xml[:tns].Gender      person.gender
        xml[:tns].FirstNameLatin person.first_name_latin
        xml[:tns].LastNameLatin person.last_name_latin
        xml[:tns].deleted   'false'
        xml[:tns].ExtraBags '0'
        xml[:tns].Documents{
          xml[:tns].id_Document     person.document.id
          xml[:tns].DateGiven       person.document.date
          xml[:tns].DateExpire      person.document.expires
          xml[:tns].Number          person.document.number
          xml[:tns].id_DocumentType person.document.id_type
        }
      }
    }
  end
  person.doc.root.children.to_xml
end