49 lines
2.2 KiB
XML
49 lines
2.2 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<provider id="klimalink">
|
|
<name>KlimaLink API</name>
|
|
<baseUrl>https://api.dev.klimalink.org</baseUrl>
|
|
<auth type="bearer">
|
|
<envKey>KLIMALINK_TOKEN</envKey>
|
|
</auth>
|
|
<operations>
|
|
<operation id="travel.flight.estimate_emissions">
|
|
<http method="POST" path="/api/v1/calculateEmission"/>
|
|
<requestBody format="json">
|
|
{
|
|
"flightActivities": [
|
|
#for leg in request.legs
|
|
{
|
|
"index":${index},
|
|
"departure":"${leg.origin_iata}",
|
|
"arrival":"${leg.destination_iata}",
|
|
"flightNumber":"${leg.flight_number}",
|
|
"flightDate":"${leg.departure_date}",
|
|
"aircraftType":"${leg.aircraft_type}",
|
|
"airline":"${leg.airline}",
|
|
"passengerCount":${leg.passenger_count},
|
|
"flightCount":${leg.flight_count},
|
|
"travelClass":"${leg.travel_class}"
|
|
}#sep,
|
|
#end
|
|
]
|
|
}
|
|
</requestBody>
|
|
<responseMapping mode="single" rootType="EmissionCalculationResult">
|
|
<constant target="EmissionCalculationResult.provider" value="klimalink"/>
|
|
<field source="$.status" target="EmissionCalculationResult.status"/>
|
|
<field source="$.emissionKgCO2eTotal" target="EmissionCalculationResult.total.co2eKg"/>
|
|
<list source="$.flightActivities[*]" target="EmissionCalculationResult.segments" itemType="SegmentEmissionResult">
|
|
<field source="$.index" target="SegmentEmissionResult.index"/>
|
|
<field source="$.type" target="SegmentEmissionResult.type"/>
|
|
<field source="$.status" target="SegmentEmissionResult.status"/>
|
|
<field source="$.emissionKgCO2e" target="SegmentEmissionResult.emissions.co2eKg"/>
|
|
<field source="$.errors" target="SegmentEmissionResult.errors"/>
|
|
<field source="$" target="SegmentEmissionResult.vendorRaw"/>
|
|
</list>
|
|
<field source="$" target="EmissionCalculationResult.vendorRaw"/>
|
|
</responseMapping>
|
|
</operation>
|
|
</operations>
|
|
</provider>
|
|
</providers>
|