Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?xml version="1.0" encoding="UTF-8"?>
- <mule xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" 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/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd">
- <flow name="updateFlights" doc:id="64b02657-d2cc-45bf-b52b-10b5c0ac1edd" >
- <ee:transform doc:name="Transform Message" doc:id="6dfdd151-971b-4a8d-b9c4-5b9d1f5c349f" >
- <ee:message >
- <ee:set-payload ><![CDATA[%dw 2.0
- output application/java
- ---
- {
- }]]></ee:set-payload>
- </ee:message>
- </ee:transform>
- </flow>
- <flow name="enrichPassengerRecords" doc:id="39a3c6e6-b76f-4cfa-9dd3-c1b549a8b0d0" >
- <ee:transform doc:name="Transform Message" doc:id="1a29d01b-bdd1-495e-bb7f-f73891618690" >
- <ee:message >
- <ee:set-payload ><![CDATA[%dw 2.0
- output application/xml
- import safeRead,objectArrayToXml from training::utils::Inputs
- var passengerRecords = safeRead ("localdata/passengerRecords.csv","application/csv")
- var flightsWithDetails = payload..*flight
- var joindPassengerData =
- dw::core::Arrays::join(
- passengerRecords as Array<Object>,
- flightsWithDetails as Array<Object>,
- (pass) -> upper(pass."Flight Code"),
- (flight) -> upper(flight."flight-code")
- )
- fun combinePassengerData (jd:Array) =
- jd map (p) ->
- p.l ++ flight: p.r
- var pdata = combinePassengerData(joindPassengerData)
- ---
- objectArrayToXml(pdata,"passenger")]]></ee:set-payload>
- </ee:message>
- </ee:transform>
- </flow>
- <flow name="objectConstructor" doc:id="fbdce3fa-e9d4-4db8-b702-b2bb12c7a2bd" >
- <ee:transform doc:name="Transform Message" doc:id="1033a3e5-2c70-45e1-a877-b3906823b45e" >
- <ee:message >
- <ee:set-payload ><![CDATA[%dw 2.0
- output application/json
- var o1 = {one:11,two:2,five:5}
- ---
- {
- originalData: o1,
- // encapsulatedObject: {o1}, // error
- evaluatedObject: (o1), // same as first one
- enhancedObject: {(o1), six:6},
- adHocObject: [o1,{(o1), six:6}],
- evaluated: {([o1,{(o1), six:6}])}
- }]]></ee:set-payload>
- </ee:message>
- </ee:transform>
- </flow>
- <flow name="enrichFlightRecords" doc:id="8f111488-2959-41b7-8831-0358534e7594" >
- <ee:transform doc:name="Transform Message" doc:id="55ffd361-efe7-4af2-a0c4-df58e14dbbc4" >
- <ee:message >
- <ee:set-payload ><![CDATA[%dw 2.0
- output application/json
- import training::utils::Inputs
- import USCurrency from training::utils::Inputs
- var airports = Inputs::safeRead("localdata/airportInfoTiny.csv","application/csv")
- groupBy $.IATA
- var fieldMask = [
- "openFlightsAirportId",
- // "airportName",
- // "city",
- "country",
- "IATA",
- " ICAO",
- // "longitude",
- // "latitude",
- // "altitude",
- "timeZone",
- "DST",
- "timeZone",
- "type",
- "source"
- ]
- fun reduceAirportInfo (ai:Object,mask:Array<String>) =
- ai -- mask
- fun joinAirportDetails (p) =
- p map (f) -> (f - "destination") ++
- destination: reduceAirportInfo(airports.LAX[0],fieldMask)
- ++ "IATA": f.destination
- fun getAirportDetails (f:Object) =
- destination: reduceAirportInfo(airports.LAX[0],fieldMask)
- fun joinAirportDetailsV2 (p) =
- p map (f) ->
- f mapObject (v,k) ->
- k match {
- case "destination" -> getAirportDetails(f)
- case "price" -> price: f.price as USCurrency
- else -> (k): v
- }
- ---
- joinAirportDetailsV2(payload)
- ]]></ee:set-payload>
- </ee:message>
- </ee:transform>
- </flow>
- </mule>
Advertisement
Add Comment
Please, Sign In to add comment