nex providers
This commit is contained in:
50
providers/carboninterface/carboninterface.xml
Normal file
50
providers/carboninterface/carboninterface.xml
Normal file
@@ -0,0 +1,50 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<providers xmlns="https://calco2la.to/schema/providers/v1">
|
||||
<provider id="carboninterface">
|
||||
<name>Carbon Interface</name>
|
||||
<baseUrl>https://www.carboninterface.com/api/v1</baseUrl>
|
||||
<auth type="bearer">
|
||||
<envKey>CARBONINTERFACE_API_KEY</envKey>
|
||||
</auth>
|
||||
<operations>
|
||||
<operation id="travel.flight.estimate_emissions">
|
||||
<http method="POST" path="/estimates"/>
|
||||
<requestBody format="json">
|
||||
{
|
||||
"type": "flight",
|
||||
"passengers": ${request.passengers},
|
||||
"legs": [
|
||||
#for leg in request.legs
|
||||
{
|
||||
"departure_airport": "${leg.origin_iata}",
|
||||
"destination_airport": "${leg.destination_iata}"
|
||||
}#sep,
|
||||
#end
|
||||
]
|
||||
}
|
||||
</requestBody>
|
||||
<responseMapping mode="single" rootType="EmissionCalculationResult">
|
||||
<constant target="EmissionCalculationResult.provider" value="carboninterface"/>
|
||||
<constant target="EmissionCalculationResult.domain" value="travel.flight"/>
|
||||
<constant target="EmissionCalculationResult.operation" value="travel.flight.estimate_emissions"/>
|
||||
<field source="$.data.attributes.carbon_kg" target="EmissionCalculationResult.total.co2eKg"/>
|
||||
<field source="$.data.attributes.carbon_mt" target="EmissionCalculationResult.total.co2eTonnes"/>
|
||||
<constant target="EmissionCalculationResult.total.unit" value="kg"/>
|
||||
<constant target="EmissionCalculationResult.total.per" value="request"/>
|
||||
<field source="$.data.id" target="EmissionCalculationResult.quote.id"/>
|
||||
<field source="$.data.attributes.passengers" target="EmissionCalculationResult.passengerCount"/>
|
||||
<field source="$.data.attributes.distance_value" target="EmissionCalculationResult.distance.value"/>
|
||||
<field source="$.data.attributes.distance_unit" target="EmissionCalculationResult.distance.unit"/>
|
||||
<field source="$.data.attributes.estimated_at" target="EmissionCalculationResult.methodology.datasetVersion"/>
|
||||
<constant target="EmissionCalculationResult.methodology.vendor" value="Carbon Interface"/>
|
||||
<list source="$.data.attributes.legs[*]" target="EmissionCalculationResult.segments" itemType="SegmentEmissionResult">
|
||||
<field source="$.departure_airport" target="SegmentEmissionResult.origin.iata"/>
|
||||
<field source="$.destination_airport" target="SegmentEmissionResult.destination.iata"/>
|
||||
<field source="$" target="SegmentEmissionResult.vendorRaw"/>
|
||||
</list>
|
||||
<field source="$" target="EmissionCalculationResult.vendorRaw"/>
|
||||
</responseMapping>
|
||||
</operation>
|
||||
</operations>
|
||||
</provider>
|
||||
</providers>
|
||||
Reference in New Issue
Block a user