initial untested XML commit
This commit is contained in:
68
providers/atmosfair/atmosfair.xml
Normal file
68
providers/atmosfair/atmosfair.xml
Normal file
@@ -0,0 +1,68 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<providers xmlns="https://calco2la.to/schema/providers/v1">
|
||||
<provider id="atmosfair">
|
||||
<name>Atmosfair Webservice 5</name>
|
||||
<baseUrl>https://api.atmosfair.de</baseUrl>
|
||||
<auth type="bodyCredentials"/>
|
||||
<operations>
|
||||
<operation id="travel.flight.estimate_emissions">
|
||||
<http method="POST" path="/api/emission/flight"/>
|
||||
<requestBody format="json">
|
||||
{
|
||||
"accountId": "${env.ATMOSFAIR_ACCOUNT_ID}",
|
||||
"password": "${env.ATMOSFAIR_PASSWORD}",
|
||||
"calculationMethod": "${request.calculation_method}",
|
||||
"flights": [
|
||||
#for leg in request.legs
|
||||
{
|
||||
"departure": "${leg.origin_iata}",
|
||||
"arrival": "${leg.destination_iata}",
|
||||
"flightNumber": "${leg.flight_number}",
|
||||
"departureDate": "${leg.departure_date}",
|
||||
"passengerCount": ${leg.passenger_count},
|
||||
"flightCount": ${leg.flight_count},
|
||||
"travelClass": "${leg.travel_class}",
|
||||
"charter": ${leg.charter},
|
||||
"aircraftType": "${leg.aircraft_type}"
|
||||
}#sep,
|
||||
#end
|
||||
]
|
||||
}
|
||||
</requestBody>
|
||||
<responseMapping mode="single" rootType="EmissionCalculationResult">
|
||||
<constant target="EmissionCalculationResult.provider" value="atmosfair"/>
|
||||
<constant target="EmissionCalculationResult.domain" value="travel.flight"/>
|
||||
<field source="$.status" target="EmissionCalculationResult.status"/>
|
||||
<field source="$.co2" target="EmissionCalculationResult.total.co2eKg"/>
|
||||
<field source="$.co2WithoutRfi" target="EmissionCalculationResult.total.co2Kg"/>
|
||||
<field source="$.offsetInEUR" target="EmissionCalculationResult.offset.amount"/>
|
||||
<constant target="EmissionCalculationResult.offset.currency" value="EUR"/>
|
||||
<field source="$.distance" target="EmissionCalculationResult.distance.value"/>
|
||||
<constant target="EmissionCalculationResult.distance.unit" value="km"/>
|
||||
<field source="$.fuelInLiter" target="EmissionCalculationResult.fuel.liters"/>
|
||||
<field source="$.errors" target="EmissionCalculationResult.errors"/>
|
||||
<field source="$" target="EmissionCalculationResult.vendorRaw"/>
|
||||
<list source="$.flights[*]" target="EmissionCalculationResult.segments" itemType="SegmentEmissionResult">
|
||||
<field source="$.departure" target="SegmentEmissionResult.origin.iata"/>
|
||||
<field source="$.arrival" target="SegmentEmissionResult.destination.iata"/>
|
||||
<field source="$.flightNumber" target="SegmentEmissionResult.flightNumber"/>
|
||||
<field source="$.departureDate" target="SegmentEmissionResult.flightDate"/>
|
||||
<field source="$.passengerCount" target="SegmentEmissionResult.passengerCount"/>
|
||||
<field source="$.flightCount" target="SegmentEmissionResult.flightCount"/>
|
||||
<field source="$.travelClass" target="SegmentEmissionResult.travelClass"/>
|
||||
<field source="$.charter" target="SegmentEmissionResult.charter"/>
|
||||
<field source="$.aircraftType" target="SegmentEmissionResult.aircraftType"/>
|
||||
<field source="$.co2" target="SegmentEmissionResult.emissions.co2eKg"/>
|
||||
<field source="$.co2WithoutRfi" target="SegmentEmissionResult.emissions.co2Kg"/>
|
||||
<field source="$.distance" target="SegmentEmissionResult.distance.value"/>
|
||||
<constant target="SegmentEmissionResult.distance.unit" value="km"/>
|
||||
<field source="$.fuelInLiter" target="SegmentEmissionResult.fuel.liters"/>
|
||||
<field source="$.cruiseAltitude" target="SegmentEmissionResult.cruiseAltitude"/>
|
||||
<field source="$.distanceInCriticalAltitudes" target="SegmentEmissionResult.distanceInCriticalAltitudes"/>
|
||||
<field source="$" target="SegmentEmissionResult.vendorRaw"/>
|
||||
</list>
|
||||
</responseMapping>
|
||||
</operation>
|
||||
</operations>
|
||||
</provider>
|
||||
</providers>
|
||||
Reference in New Issue
Block a user