<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:wsc="http://www.mulesoft.org/schema/mule/wsc" xmlns:american-flights-api="http://www.mulesoft.org/schema/mule/american-flights-api"
xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/american-flights-api http://www.mulesoft.org/schema/mule/american-flights-api/current/mule-american-flights-api.xsd
http://www.mulesoft.org/schema/mule/wsc http://www.mulesoft.org/schema/mule/wsc/current/mule-wsc.xsd">
<sub-flow name="setDestination" doc:id="ecd9ee5a-62be-41a0-9fc2-73127c8ae213" >
<set-variable value='#[attributes.queryParams.code default "SFO"]' doc:name="Set destination" doc:id="830cbb91-07d9-4844-8de8-206bd16650ec" variableName="destination" />
</sub-flow>
<flow name="getDeltaFlightsFlow" doc:id="fcce2eeb-b56b-40d9-83f5-26f63541527d" >
<http:listener doc:name="GET /delta" doc:id="2ee44b84-63f2-43d6-bbf4-4bdc851e3727" config-ref="mua-flights-api-httpListenerConfig" path="/delta" allowedMethods="GET"/>
<flow-ref doc:name="set Destination" doc:id="9a855835-e0c2-42b0-bba1-a956f99f4c72" name="setDestination" />
<ee:transform doc:name="Map destination" doc:id="432278e6-236d-46a3-a0b9-88c591d27a92" >
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/xml
ns ns0 http://soap.training.mulesoft.com/
---
{
ns0#findFlight: {
destination: vars.destination
}
}]]></ee:set-payload>
</ee:message>
</ee:transform>
<wsc:consume doc:name="Delta SOAP Request" doc:id="c9665439-6a9f-4f96-8249-725d6b2afe8d" config-ref="Web_Service_Consumer_Config" operation="findFlight"/>
<ee:transform doc:name="Map to Output JSON" doc:id="f1e0137a-9223-433d-b13f-c9b7e9d71244" >
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/json
ns ns0 http://soap.training.mulesoft.com/
---
payload.body.ns0#findFlightResponse.*return map ( return , indexOfReturn ) -> {
airline: return.airlineName default "",
flightCode: return.code default "",
fromAirportCode: return.origin default "",
toAirportCode: return.destination default "",
departureDate: return.departureDate default "",
emptySeats: return.emptySeats default 0,
price: return.price default 0,
planeType: return.planeType default ""
}]]></ee:set-payload>
</ee:message>
</ee:transform>
<logger level="INFO" doc:name="Logger" doc:id="3978cc0c-47ed-4e07-93e2-925328bd3ff0" />
</flow>
<flow name="getAmericanFlightsFlow" doc:id="646a2a2d-0594-4f84-b1cb-896a2300a239" >
<http:listener doc:name="GET /american" doc:id="1286898a-545d-4803-9cce-d0117be92a09" config-ref="mua-flights-api-httpListenerConfig" path="/american" allowedMethods="GET"/>
<flow-ref doc:name="set Destination" doc:id="ee47b7d1-b4bf-47b9-82ff-49d415ab12d7" name="setDestination"/>
<american-flights-api:get-all-flights doc:name="Get all flights" doc:id="8a392847-2189-472c-ab51-15350221c5ad" config-ref="American_Flights_API_Config" destination="#[vars.destination]"/>
<ee:transform doc:name="Transform Message" doc:id="ce6a7709-4306-436d-94b8-ee3afa42fbe0" >
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload map ( payload01 , indexOfPayload01 ) -> {
airline: "American",
flightCode: payload01.code default "",
fromAirportCode: payload01.origin default "",
toAirportCode: payload01.destination default "",
departureDate: payload01.departureDate default "",
emptySeats: payload01.emptySeats default 0,
totalSeats: payload01.plane.totalSeats default 0,
price: payload01.price default 0,
planeType: payload01.plane."type" default ""
}]]></ee:set-payload>
</ee:message>
</ee:transform>
<logger level="INFO" doc:name="Logger" doc:id="3c047554-ae83-40fc-ae62-9575e8c0307a" />
</flow>
<flow name="getUnitedFlightsFlow" doc:id="f1b59c5b-162d-4b5e-bc1a-3d4793eaf4ee">
<http:listener doc:name="GET /united" doc:id="a8fde4bf-0dc7-42ab-bf99-6b799f4e663a" config-ref="mua-flights-api-httpListenerConfig" path="/united" allowedMethods="GET" />
<flow-ref doc:name="set Destination" doc:id="df61eabd-19b4-47b3-ab7e-d0d7294ff4f5" name="setDestination"/>
<http:request method="GET" doc:name="GET United REST Request" doc:id="672c4abd-4ec8-4b0d-93ec-a631725f1b65" config-ref="United_REST_Request_configuration" path="/united/flights/{AC}" >
<http:uri-params ><![CDATA[#[output application/java
---
{
"AC" : vars.destination
}]]]></http:uri-params>
</http:request>
<ee:transform doc:name="Transform Message" doc:id="5f901762-4f22-411b-8028-d83821280108">
<ee:message>
<ee:set-payload><![CDATA[%dw 2.0
output application/json
---
payload.flights map ( flight , indexOfFlight ) -> {
airline: flight.airlineName,
flightCode: flight.code,
fromAirportCode: flight.origin,
toAirportCode: flight.destination,
departureDate: flight.departureDate,
emptySeats: flight.emptySeats,
price: flight.price,
planeType: flight.planeType
}]]></ee:set-payload>
</ee:message>
</ee:transform>
<logger level="INFO" doc:name="Logger" doc:id="e8b180ff-3f36-48b5-bbae-b1acc4877a74" />
</flow>
</mule>
Comments