initial untested XML commit
This commit is contained in:
@@ -3,48 +3,52 @@
|
||||
<!-- Google TIM -->
|
||||
<provider id="google_tim">
|
||||
<name>Google Travel Impact Model</name>
|
||||
<baseUrl>https://travelimpactmodel.googleapis.com/v1</baseUrl>
|
||||
|
||||
<baseUrl>https://travelimpactmodel.googleapis.com</baseUrl>
|
||||
<auth type="apiKey">
|
||||
<header>X-Goog-Api-Key</header>
|
||||
<format>${API_KEY}</format>
|
||||
<envKey>GOOGLE_TIM_API_KEY</envKey>
|
||||
</auth>
|
||||
|
||||
<operations>
|
||||
|
||||
<operation id="travel.flight.estimate_emissions">
|
||||
<http method="POST" path="/flights:computeFlightEmissions" />
|
||||
|
||||
<http method="POST" path="/v1/flights:computeFlightEmissions"/>
|
||||
<requestBody format="json">
|
||||
{
|
||||
"flightSegments": [
|
||||
"flights": [
|
||||
#for leg in request.legs
|
||||
{
|
||||
"departureAirport": { "code": "${leg.origin_iata}" },
|
||||
"arrivalAirport": { "code": "${leg.destination_iata}" }
|
||||
"origin":"${leg.origin_iata}",
|
||||
"destination":"${leg.destination_iata}",
|
||||
"operatingCarrierCode":"${leg.operating_carrier}",
|
||||
"flightNumber":${leg.flight_number},
|
||||
"departureDate":{
|
||||
"year":${leg.departure_date.year},
|
||||
"month":${leg.departure_date.month},
|
||||
"day":${leg.departure_date.day}
|
||||
}
|
||||
}#sep,
|
||||
#end
|
||||
],
|
||||
"cabinClass": "${request.cabin_class}",
|
||||
"passengerCount": ${request.passengers}
|
||||
]
|
||||
}
|
||||
</requestBody>
|
||||
|
||||
<responseMapping>
|
||||
<map source="$.flightEmissions[0].co2Grams"
|
||||
target="EmissionEstimate.co2_kg"
|
||||
transform="divideBy1000" />
|
||||
<map source="$.flightEmissions[0].co2eGrams"
|
||||
target="EmissionEstimate.co2e_kg"
|
||||
transform="divideBy1000" />
|
||||
<map source="$.modelVersion"
|
||||
target="EmissionEstimate.method_version" />
|
||||
<constant target="EmissionEstimate.method_name" value="Travel Impact Model" />
|
||||
<constant target="EmissionEstimate.vendor" value="google_tim" />
|
||||
<map source="$" target="EmissionEstimate.vendor_raw" />
|
||||
<responseMapping mode="single" rootType="EmissionCalculationResult">
|
||||
<constant target="EmissionCalculationResult.provider" value="google_tim"/>
|
||||
<field source="$.modelVersion.major" target="EmissionCalculationResult.methodology.methodVersion"/>
|
||||
<list source="$.flightEmissions[*]" target="EmissionCalculationResult.segments" itemType="SegmentEmissionResult">
|
||||
<field source="$.flight.origin" target="SegmentEmissionResult.origin.iata"/>
|
||||
<field source="$.flight.destination" target="SegmentEmissionResult.destination.iata"/>
|
||||
<field source="$.flight.operatingCarrierCode" target="SegmentEmissionResult.airline"/>
|
||||
<field source="$.flight.flightNumber" target="SegmentEmissionResult.flightNumber"/>
|
||||
<field source="$.source" target="SegmentEmissionResult.source"/>
|
||||
<field source="$.emissionsGramsPerPax.economy" target="SegmentEmissionResult.classEmissions.economyKg" transform="divideBy1000"/>
|
||||
<field source="$.emissionsGramsPerPax.premiumEconomy" target="SegmentEmissionResult.classEmissions.premiumEconomyKg" transform="divideBy1000"/>
|
||||
<field source="$.emissionsGramsPerPax.business" target="SegmentEmissionResult.classEmissions.businessKg" transform="divideBy1000"/>
|
||||
<field source="$.emissionsGramsPerPax.first" target="SegmentEmissionResult.classEmissions.firstKg" transform="divideBy1000"/>
|
||||
<field source="$" target="SegmentEmissionResult.vendorRaw"/>
|
||||
</list>
|
||||
<field source="$" target="EmissionCalculationResult.vendorRaw"/>
|
||||
</responseMapping>
|
||||
</operation>
|
||||
|
||||
</operations>
|
||||
</provider>
|
||||
</providers>
|
||||
|
||||
Reference in New Issue
Block a user