initial untested XML commit

This commit is contained in:
2026-05-21 02:51:43 +02:00
parent ae691d495c
commit e8fb9f92e4
15 changed files with 1175 additions and 65 deletions

View File

@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<providers xmlns="https://calco2la.to/schema/providers/v1">
<provider id="myclimate_bulk">
<name>myclimate Bulk Flight Calculator</name>
<baseUrl>https://api.myclimate.org</baseUrl>
<auth type="basic">
<usernameEnvKey>MYCLIMATE_USERNAME</usernameEnvKey>
<passwordEnvKey>MYCLIMATE_PASSWORD</passwordEnvKey>
</auth>
<operations>
<operation id="travel.flight.estimate_emissions">
<http method="POST" path="/v1/bulk_flight_calculators.json"/>
<requestBody format="json">
{
"flights": [
#for leg in request.legs
{
"id":"${leg.id}",
"from":"${leg.origin_iata}",
"to":"${leg.destination_iata}",
"aircraft_type":"${leg.aircraft_type}",
"flight_class":"${leg.travel_class}"
}#sep,
#end
]
}
</requestBody>
<responseMapping mode="single" rootType="EmissionCalculationResult">
<constant target="EmissionCalculationResult.provider" value="myclimate_bulk"/>
<field source="$.sum_co2eq_kg" target="EmissionCalculationResult.total.co2eKg"/>
<field source="$.sum_km" target="EmissionCalculationResult.distance.value"/>
<list source="$.flights[*]" target="EmissionCalculationResult.segments" itemType="SegmentEmissionResult">
<field source="$.id" target="SegmentEmissionResult.id"/>
<field source="$.from" target="SegmentEmissionResult.origin.iata"/>
<field source="$.to" target="SegmentEmissionResult.destination.iata"/>
<field source="$.co2eq_kg" target="SegmentEmissionResult.emissions.co2eKg"/>
<field source="$.km" target="SegmentEmissionResult.distance.value"/>
<field source="$.status" target="SegmentEmissionResult.status"/>
<field source="$" target="SegmentEmissionResult.vendorRaw"/>
</list>
</responseMapping>
</operation>
</operations>
</provider>
</providers>

View File

@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<providers xmlns="https://calco2la.to/schema/providers/v1">
<provider id="myclimate_v1">
<name>myclimate Flight Calculator V1</name>
<baseUrl>https://api.myclimate.org</baseUrl>
<auth type="basic">
<usernameEnvKey>MYCLIMATE_USERNAME</usernameEnvKey>
<passwordEnvKey>MYCLIMATE_PASSWORD</passwordEnvKey>
</auth>
<operations>
<operation id="travel.flight.estimate_emissions">
<http method="POST" path="/v1/flight_calculators.json"/>
<requestBody format="json">
{
"from":"${request.legs[0].origin_iata}",
"to":"${request.legs[last].destination_iata}",
"via":"${request.vendor_options.via}",
"passengers":${request.passengers},
"roundtrip":${request.roundtrip},
"flight_class":"${request.cabin_class}"
}
</requestBody>
<responseMapping mode="single" rootType="EmissionCalculationResult">
<constant target="EmissionCalculationResult.provider" value="myclimate_v1"/>
<field source="$.kg" target="EmissionCalculationResult.total.co2eKg"/>
<field source="$.km" target="EmissionCalculationResult.distance.value"/>
<constant target="EmissionCalculationResult.distance.unit" value="km"/>
<field source="$.fuel_kg_per_passenger" target="EmissionCalculationResult.fuel.kg"/>
<field source="$.price_in_eur_cents" target="EmissionCalculationResult.offset.amountMinor"/>
<constant target="EmissionCalculationResult.offset.currency" value="EUR"/>
<field source="$.errors" target="EmissionCalculationResult.errors"/>
<field source="$.input_params" target="EmissionCalculationResult.inputEcho"/>
<field source="$" target="EmissionCalculationResult.vendorRaw"/>
</responseMapping>
</operation>
</operations>
</provider>
</providers>

View File

@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<providers xmlns="https://calco2la.to/schema/providers/v1">
<provider id="myclimate_v2">
<name>myclimate Flight Calculator V2</name>
<baseUrl>https://api.myclimate.org</baseUrl>
<auth type="basic">
<usernameEnvKey>MYCLIMATE_USERNAME</usernameEnvKey>
<passwordEnvKey>MYCLIMATE_PASSWORD</passwordEnvKey>
</auth>
<operations>
<operation id="travel.flight.estimate_emissions">
<http method="POST" path="/v2/flight_calculators.json"/>
<requestBody format="json">
{
"from":"${request.legs[0].origin_iata}",
"to":"${request.legs[last].destination_iata}",
"via":"${request.vendor_options.via}",
"aircraft_type_leg_1":"${request.legs[0].aircraft_type}",
"aircraft_type_leg_2":"${request.legs[1].aircraft_type}",
"passengers":${request.passengers},
"roundtrip":${request.roundtrip},
"flight_class":"${request.cabin_class}"
}
</requestBody>
<responseMapping mode="single" rootType="EmissionCalculationResult">
<constant target="EmissionCalculationResult.provider" value="myclimate_v2"/>
<field source="$.kg" target="EmissionCalculationResult.total.co2eKg"/>
<field source="$.km" target="EmissionCalculationResult.distance.value"/>
<field source="$.fuel_kg_per_passenger" target="EmissionCalculationResult.fuel.kg"/>
<field source="$.errors" target="EmissionCalculationResult.errors"/>
<field source="$" target="EmissionCalculationResult.vendorRaw"/>
</responseMapping>
</operation>
</operations>
</provider>
</providers>