nex providers

This commit is contained in:
2026-05-23 14:53:23 +02:00
parent 8795b872f9
commit c73eeb907d
8 changed files with 676 additions and 96 deletions

View File

@@ -0,0 +1,62 @@
<?xml version="1.0" encoding="UTF-8"?>
<providers xmlns="https://calco2la.to/schema/providers/v1">
<provider id="travelco2">
<name>TravelCO2 Transport API</name>
<baseUrl>https://travelco2.com</baseUrl>
<auth type="bearer">
<envKey>TRAVELCO2_API_KEY</envKey>
</auth>
<operations>
<operation id="travel.flight.estimate_emissions.distance">
<http method="POST" path="/api/v1/transport"/>
<headers>
<header name="Accept" value="application/json"/>
<header name="Content-Type" value="application/json"/>
</headers>
<requestBody format="json">
{
"vehicle": {
"type": "${request.vendor_options.travelco2_vehicle_type}",
"fuel": {
"type": "${request.vendor_options.travelco2_fuel_type}"
}
},
"distance": ${request.legs[0].distance_m},
"people": ${request.passengers},
"language": "${request.vendor_options.travelco2_language}"
}
</requestBody>
<responseMapping mode="single" rootType="EmissionCalculationResult">
<constant target="EmissionCalculationResult.provider" value="travelco2"/>
<constant target="EmissionCalculationResult.domain" value="travel.flight"/>
<constant target="EmissionCalculationResult.operation" value="travel.flight.estimate_emissions.distance"/>
<field source="$.co2e" target="EmissionCalculationResult.total.co2eKg"/>
<constant target="EmissionCalculationResult.total.unit" value="kg"/>
<constant target="EmissionCalculationResult.total.per" value="request"/>
<field source="$.co2e_pp" target="EmissionCalculationResult.perPassenger.co2eKg"/>
<constant target="EmissionCalculationResult.perPassenger.unit" value="kg"/>
<constant target="EmissionCalculationResult.perPassenger.per" value="passenger"/>
<field source="$.distance" target="EmissionCalculationResult.distance.value"/>
<constant target="EmissionCalculationResult.distance.unit" value="m"/>
<field source="$.people" target="EmissionCalculationResult.passengerCount"/>
<field source="$.ways" target="EmissionCalculationResult.vendorRaw.ways"/>
<field source="$.type" target="EmissionCalculationResult.segments[0].type"/>
<field source="$.title" target="EmissionCalculationResult.description"/>
<field source="$.vehicle.type" target="EmissionCalculationResult.segments[0].vendorRaw.vehicleType"/>
<field source="$.vehicle.title" target="EmissionCalculationResult.segments[0].vendorRaw.vehicleTitle"/>
<field source="$.vehicle.vehicle_count" target="EmissionCalculationResult.segments[0].vendorRaw.vehicleCount"/>
<field source="$.vehicle.fuel.type" target="EmissionCalculationResult.segments[0].vendorRaw.fuelType"/>
<field source="$.vehicle.fuel.title" target="EmissionCalculationResult.segments[0].vendorRaw.fuelTitle"/>
<field source="$.co2e" target="EmissionCalculationResult.segments[0].emissions.co2eKg"/>
<field source="$.co2e_pp" target="EmissionCalculationResult.segments[0].vendorRaw.co2ePerPersonKg"/>
<field source="$.distance" target="EmissionCalculationResult.segments[0].distance.value"/>
<constant target="EmissionCalculationResult.segments[0].distance.unit" value="m"/>
<constant target="EmissionCalculationResult.methodology.vendor" value="TravelCO2"/>
<constant target="EmissionCalculationResult.methodology.methodName" value="TravelCO2 Transport API"/>
<constant target="EmissionCalculationResult.methodology.documentationUrl" value="https://travelco2.com/documentation"/>
<field source="$" target="EmissionCalculationResult.vendorRaw"/>
</responseMapping>
</operation>
</operations>
</provider>
</providers>