71 lines
5.6 KiB
XML
71 lines
5.6 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<providers xmlns="https://calco2la.to/schema/providers/v1">
|
|
<provider id="carbontracer">
|
|
<name>CarbonTracer Uni Graz</name>
|
|
<baseUrl>https://api.carbontracer.uni-graz.at</baseUrl>
|
|
<auth type="pathApiKey">
|
|
<envKey>CARBONTRACER_API_KEY</envKey>
|
|
<placeholder>apikey</placeholder>
|
|
</auth>
|
|
<operations>
|
|
<operation id="travel.flight.estimate_emissions">
|
|
<http method="GET" path="/routing/${env.CARBONTRACER_API_KEY}/${request.vendor_options.carbontracer_type}/${request.legs[0].origin_iata}/${request.legs[0].destination_iata}/options=airports"/>
|
|
<responseMapping mode="single" rootType="EmissionCalculationResult">
|
|
<constant target="EmissionCalculationResult.provider" value="carbontracer"/>
|
|
<constant target="EmissionCalculationResult.domain" value="travel.flight"/>
|
|
<constant target="EmissionCalculationResult.operation" value="travel.flight.estimate_emissions"/>
|
|
<field source="$.response.success" target="EmissionCalculationResult.vendorRaw.success"/>
|
|
<field source="$.response.warning" target="EmissionCalculationResult.vendorRaw.warning"/>
|
|
<field source="$.response.errors" target="EmissionCalculationResult.errors"/>
|
|
<field source="$.response.data.co2eq_occupancy" target="EmissionCalculationResult.total.co2eKg"/>
|
|
<field source="$.response.data.unitco2eq" target="EmissionCalculationResult.total.unit"/>
|
|
<constant target="EmissionCalculationResult.total.per" value="passenger"/>
|
|
<field source="$.response.data.distanceRoute" target="EmissionCalculationResult.distance.value"/>
|
|
<field source="$.response.data.unitdistance" target="EmissionCalculationResult.distance.unit"/>
|
|
<field source="$.response.data.startLocation.label" target="EmissionCalculationResult.segments[0].origin.name"/>
|
|
<field source="$.response.data.startLocation.country" target="EmissionCalculationResult.segments[0].origin.country"/>
|
|
<field source="$.response.data.startLocation.Longitude" target="EmissionCalculationResult.segments[0].origin.lon"/>
|
|
<field source="$.response.data.startLocation.latitute" target="EmissionCalculationResult.segments[0].origin.lat"/>
|
|
<field source="$.response.data.endLocation.label" target="EmissionCalculationResult.segments[0].destination.name"/>
|
|
<field source="$.response.data.endLocation.country" target="EmissionCalculationResult.segments[0].destination.country"/>
|
|
<field source="$.response.data.endLocation.Longitude" target="EmissionCalculationResult.segments[0].destination.lon"/>
|
|
<field source="$.response.data.endLocation.latitute" target="EmissionCalculationResult.segments[0].destination.lat"/>
|
|
<field source="$.response.data.requestType" target="EmissionCalculationResult.segments[0].type"/>
|
|
<field source="$.response.data.co2eq" target="EmissionCalculationResult.segments[0].emissions.co2eKg"/>
|
|
<field source="$.response.data.occupancy" target="EmissionCalculationResult.segments[0].passengerCount"/>
|
|
<field source="$.response.data.distanceRoute" target="EmissionCalculationResult.segments[0].distance.value"/>
|
|
<field source="$.response.data.unitdistance" target="EmissionCalculationResult.segments[0].distance.unit"/>
|
|
<field source="$" target="EmissionCalculationResult.vendorRaw"/>
|
|
</responseMapping>
|
|
</operation>
|
|
<operation id="travel.flight.estimate_emissions.distance">
|
|
<http method="GET" path="/co2only/${env.CARBONTRACER_API_KEY}/${request.vendor_options.carbontracer_type}/${request.legs[0].distance_km}"/>
|
|
<responseMapping mode="single" rootType="EmissionCalculationResult">
|
|
<constant target="EmissionCalculationResult.provider" value="carbontracer"/>
|
|
<constant target="EmissionCalculationResult.domain" value="travel.flight"/>
|
|
<constant target="EmissionCalculationResult.operation" value="travel.flight.estimate_emissions.distance"/>
|
|
<field source="$.response.success" target="EmissionCalculationResult.vendorRaw.success"/>
|
|
<field source="$.response.warning" target="EmissionCalculationResult.vendorRaw.warning"/>
|
|
<field source="$.response.errors" target="EmissionCalculationResult.errors"/>
|
|
<field source="$.response.data.co2eq" target="EmissionCalculationResult.total.co2eKg"/>
|
|
<field source="$.response.data.unitco2eq" target="EmissionCalculationResult.total.unit"/>
|
|
<field source="$.response.data.distance" target="EmissionCalculationResult.distance.value"/>
|
|
<field source="$.response.data.unitdistance" target="EmissionCalculationResult.distance.unit"/>
|
|
<field source="$.response.data.requestType" target="EmissionCalculationResult.segments[0].type"/>
|
|
<field source="$" target="EmissionCalculationResult.vendorRaw"/>
|
|
</responseMapping>
|
|
</operation>
|
|
<operation id="travel.location.search">
|
|
<http method="GET" path="/location/${env.CARBONTRACER_API_KEY}/${request.query}"/>
|
|
<responseMapping mode="single" rootType="LocationRef">
|
|
<field source="$.response.data.country" target="LocationRef.country"/>
|
|
<field source="$.response.data.city" target="LocationRef.city"/>
|
|
<field source="$.response.data.label" target="LocationRef.name"/>
|
|
<field source="$.response.data.Longitude" target="LocationRef.lon"/>
|
|
<field source="$.response.data.latitute" target="LocationRef.lat"/>
|
|
<field source="$" target="LocationRef.vendorRaw"/>
|
|
</responseMapping>
|
|
</operation>
|
|
</operations>
|
|
</provider>
|
|
</providers> |