Run the api
This commit is contained in:
parent
20798d2127
commit
8664201114
49
app.py
49
app.py
@ -0,0 +1,49 @@
|
|||||||
|
"""
|
||||||
|
app module
|
||||||
|
Carries out the API
|
||||||
|
SPDX - License - Identifier: LGPL - 3.0 - or -later
|
||||||
|
Copyright © 2024 Concordia CERC group
|
||||||
|
Code contributors: Alireza Adli alireza.adli@mail.concordia.ca
|
||||||
|
"""
|
||||||
|
from flask import request, Flask
|
||||||
|
from flask_apispec import use_kwargs
|
||||||
|
from flask_restful import Resource, Api
|
||||||
|
|
||||||
|
from schemas import LCAInputData
|
||||||
|
from lca_carbon_workflow import LCACarbonWorkflow
|
||||||
|
|
||||||
|
|
||||||
|
class AccessCityGeoJson(Resource):
|
||||||
|
@use_kwargs(LCAInputData)
|
||||||
|
def post(self, **kwargs):
|
||||||
|
json_data = request.get_json()
|
||||||
|
schema = LCAInputData()
|
||||||
|
errors = schema.validate(json_data)
|
||||||
|
if errors:
|
||||||
|
return errors, 400
|
||||||
|
lca_carbon = LCACarbonWorkflow(kwargs,
|
||||||
|
'nrcan_archetypes.json',
|
||||||
|
'nrcan_constructions_cap_3.json')
|
||||||
|
lca_carbon.calculate_emission()
|
||||||
|
result = lca_carbon.building_opening_emission, \
|
||||||
|
lca_carbon.building_envelope_emission, \
|
||||||
|
lca_carbon.building_component_emission, \
|
||||||
|
lca_carbon.building_opening_end_of_life_emission, \
|
||||||
|
lca_carbon.building_envelope_end_of_life_emission, \
|
||||||
|
lca_carbon.building_component_end_of_life_emission
|
||||||
|
|
||||||
|
return {'Building Opening Emissions:': result[0],
|
||||||
|
'Building Envelope Emissions:': result[1],
|
||||||
|
'Building Component Emissions:': result[2],
|
||||||
|
'Building Opening End of Life Emission:': result[3],
|
||||||
|
'Building Envelope End of Life Emission:': result[4],
|
||||||
|
'Building Component End of Life Emission:': result[5]}, 200
|
||||||
|
|
||||||
|
|
||||||
|
app = Flask(__name__)
|
||||||
|
api = Api(app)
|
||||||
|
|
||||||
|
|
||||||
|
api.add_resource(AccessCityGeoJson, '/result')
|
||||||
|
|
||||||
|
app.run(debug=False)
|
Loading…
Reference in New Issue
Block a user