Packages
ndc_ex_sdk
0.0.10
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/flight_price.ex
defmodule NDCEx.Message.FlightPriceRQ do
import XmlBuilder
# this is just example of 'params' variable. defined for testing purpose
@query_params [
Query: [
OriginDestination: [
Flight: [
Departure: [
AirportCode: "ARN",
Date: "2015-12-25",
Time: "13:20"
],
Arrival: [
AirportCode: "FRA",
Date: "2015-12-25",
Time: "15:30"
],
MarketingCarrier: [
AirlineID: "9A",
Name: "Athena Air",
FlightNumber: "3803"
],
OperatingCarrier: [
AirlineID: "9A",
Name: "Athena Air",
FlightNumber: "3803"
],
Equipment: [
AircraftCode: "E95",
Name: "E95 - EMBRAER 195 JET"
]
]
]
],
DataLists: [
OriginDestinationList: [
OriginDestination: [
DepartureCode: "ARN",
ArrivalCode: "RIX"
]
]
],
Metadata: [
Other: [
OtherMetadata: [
CurrencyMetadatas: [
CurrencyMetadata: [
_MetadataKey: "EUR",
Decimals: "2"
]
]
]
]
]
]
def yield(params), do: build(params)
defp build(params) do
[
element(:Query, params[:Query]),
element(:DataLists, params[:DataLists]),
element(:Metadata, meta_data(params[:Metadata][:Other][:OtherMetadata][:CurrencyMetadatas]))
]
end
defp meta_data(params) do
[
element(:Other, [
element(:OtherMetadata, [
element(:CurrencyMetadatas, [
element(:CurrencyMetadata, %{MetadataKey: params[:CurrencyMetadata][:_MetadataKey]}, [
element(:Decimals, params[:CurrencyMetadata][:Decimals])
])
])
])
])
]
end
end