Packages
ndc_ex_sdk
0.1.5
0.2.30
0.2.29
0.2.27
0.2.26
0.2.25
0.2.24
0.2.23
0.2.22
0.2.21
0.2.20
0.2.19
0.2.18
0.2.17
0.2.16
0.2.15
0.2.14
0.2.13
0.2.12
0.2.11
0.2.10
0.2.9
0.2.8
0.2.7
0.2.6
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
0.0.10
0.0.9
0.0.8
0.0.7
0.0.6
0.0.5
0.0.4
0.0.3
0.0.2
0.0.1
This is an Elixir package that wrapps any NDC-compliant API. It's host-agnostic and quite flexible-through-configuration so that it can reach NDC hosts with a certain flexibility
Current section
Files
Jump to
Current section
Files
lib/message/seat_availability.ex
defmodule NDCEx.Message.SeatAvailabilityRQ do
import XmlBuilder
require Logger
def yield(params), do: build(params)
defp build(params) do
[
element(:Query, params[:Query]),
element(:DataList, [
element(:FlightSegmentList, [
flight_segment(params[:DataList][:FlightSegmentList])
]),
element(:FlightList, [
flight_list(params[:DataList][:FlightList]),
]),
element(:OriginDestinationList, [
origin_destination_list(params[:DataList][:OriginDestinationList]),
])
])
]
end
defp query(params) do
element(:OriginDestination, params[:OriginDestination])
end
defp origin_destination_list(params) do
element(:OriginDestination, %{OriginDestinationKey: params[:OriginDestination][:_OriginDestinationKey]}, [
element(:DepartureCode, params[:OriginDestination][:DepartureCode]),
element(:ArrivalCode, params[:OriginDestination][:ArrivalCode])
])
end
defp flight_list(params) do
Enum.map(params, fn item ->
el = elem item, 1
element(:Flight, %{FlightKey: el[:_FlightKey]}, [
element(Journey: [
element(Time: el[:Journey][:Time])
]),
element(SegmentReferences: el[:SegmentReferences])
])
end)
end
defp flight_segment(params) do
Enum.map(params, fn item ->
el = elem item, 1
element(:FlightSegment, %{SegmentKey: el[:_SegmentKey]}, [
element(Departure: el[:Departure]),
element(Arrival: el[:Arrival]),
element(MarketingCarrier: el[:MarketingCarrier]),
element(OperatingCarrier: el[:OperatingCarrier]),
element(Equipment: el[:Equipment]),
element(ClassOfService: el[:ClassOfService]),
element(FlightDetail: el[:FlightDetail])
])
end)
end
end