80 lines
3.3 KiB
Python
80 lines
3.3 KiB
Python
"""
|
|
Main
|
|
SPDX - License - Identifier: LGPL - 3.0 - or -later
|
|
Copyright © 2021 Project Author name guillermo.gutierrezmorote@concordia.ca
|
|
Project Collaborator name peteryefi@gmail.com
|
|
"""
|
|
|
|
import flask
|
|
from apispec import APISpec
|
|
from apispec.ext.marshmallow import MarshmallowPlugin
|
|
from flask_apispec.extension import FlaskApiSpec
|
|
from flask_restful import Api
|
|
from hub_api.city_info import CityInfo
|
|
from hub_api.geometry import Geometry
|
|
from hub_api.greenery_catalog import GreeneryCatalogEntries
|
|
from hub_api.greenery_catalog import GreeneryCatalogEntry
|
|
from hub_api.greenery_catalog import GreeneryCatalogNames
|
|
from hub_api.construction_catalog import ConstructionCatalogEntries
|
|
from hub_api.construction_catalog import ConstructionCatalogEntry
|
|
from hub_api.construction_catalog import ConstructionCatalogNames
|
|
from hub_api.usage_catalog import UsageCatalogEntries
|
|
from hub_api.usage_catalog import UsageCatalogEntry
|
|
from hub_api.usage_catalog import UsageCatalogNames
|
|
from hub_api.heat_pump import HeatPump
|
|
from hub_api.lca import MaterialLCACatalog
|
|
from hub_api.lca import MaterialLCACalculations
|
|
from hub_api.construction import Construction
|
|
from hub_api.usage import Usage
|
|
from hub_api.energy_demand import EnergyDemand
|
|
from hub_api.session import SessionStart, SessionEnd, KeepSessionAlive
|
|
from hub_api.uptime import Uptime
|
|
from hub_api.greenery import Greenery
|
|
from hub_api.user import User, UserLogin
|
|
|
|
app = flask.Flask('gamification')
|
|
api = Api(app)
|
|
|
|
|
|
api.add_resource(Uptime, '/v1.4/uptime')
|
|
api.add_resource(Geometry, '/v1.4/geometry')
|
|
api.add_resource(GreeneryCatalogEntry, '/v1.4/greenery-catalog/entry')
|
|
api.add_resource(GreeneryCatalogEntries, '/v1.4/greenery-catalog/entries')
|
|
api.add_resource(GreeneryCatalogNames, '/v1.4/greenery-catalog/names')
|
|
api.add_resource(ConstructionCatalogEntry, '/v1.4/construction-catalog/entry')
|
|
api.add_resource(ConstructionCatalogEntries, '/v1.4/construction-catalog/entries')
|
|
api.add_resource(ConstructionCatalogNames, '/v1.4/construction-catalog/names')
|
|
api.add_resource(Construction, '/v1.4/construction')
|
|
api.add_resource(UsageCatalogEntry, '/v1.4/usage-catalog/entry')
|
|
api.add_resource(UsageCatalogEntries, '/v1.4/usage-catalog/entries')
|
|
api.add_resource(UsageCatalogNames, '/v1.4/usage-catalog/names')
|
|
api.add_resource(Usage, '/v1.4/usage')
|
|
api.add_resource(EnergyDemand, '/v1.4/energy-demand')
|
|
# api.add_resource(LCA, '/v1.4/lca')
|
|
api.add_resource(MaterialLCACatalog, '/v1.4/material_lca_catalog/entries')
|
|
api.add_resource(MaterialLCACalculations, '/v1.4/material_lca_catalog/calculations')
|
|
api.add_resource(HeatPump, '/v1.4/heat-pump')
|
|
api.add_resource(User, '/v1.4/user')
|
|
api.add_resource(UserLogin, '/v1.4/user/login')
|
|
api.add_resource(SessionStart, '/v1.4/session/start')
|
|
api.add_resource(SessionEnd, '/v1.4/session/end')
|
|
api.add_resource(KeepSessionAlive, '/v1.4/session/keep_alive')
|
|
api.add_resource(CityInfo, '/v1.4/city_info')
|
|
api.add_resource(Greenery, '/v1.4/greenery')
|
|
|
|
# Add api documentation
|
|
app.config.update({
|
|
'APISPEC_SPEC': APISpec(
|
|
title='Gamification Service',
|
|
version='v1.4',
|
|
plugins=[MarshmallowPlugin()],
|
|
openapi_version='2.0.0'
|
|
),
|
|
'APISPEC_SWAGGER_URL': '/swagger/', # URI to access API Doc JSON
|
|
'APISPEC_SWAGGER_UI_URL': '/api-docs/' # URI to access UI of API Doc
|
|
})
|
|
docs = FlaskApiSpec(app)
|
|
docs.register(HeatPump)
|
|
docs.register(User)
|
|
docs.register(UserLogin)
|