Select Git revision
Database.py
-
Robert Goldmann authoredRobert Goldmann authored
StorageLeaf.py 1.48 KiB
import os
from TheCodeLabs_BaseUtils.DefaultLogger import DefaultLogger
from TheCodeLabs_FlaskUtils.FlaskBaseApp import FlaskBaseApp
from blueprints import Routes, Devices, Sensors, Measurements
from logic import Constants
from logic.BackupService import BackupService
from logic.DiscoveryService import DiscoveryService
LOGGER = DefaultLogger().create_logger_if_not_exists(Constants.APP_NAME)
class StorageLeaf(FlaskBaseApp):
def __init__(self, appName: str):
super().__init__(appName, os.path.dirname(__file__), LOGGER, serveRobotsTxt=False)
databaseSettings = self._settings['database']
self._backupService = BackupService(databaseSettings['databasePath'], **databaseSettings['backup'])
discoverySettings = self._settings['discovery']
discoverySettings['apiPort'] = self._settings['server']['port']
self._discoveryService = DiscoveryService(**discoverySettings)
self._discoveryService.start()
def _register_blueprints(self, app):
app.register_blueprint(Routes.construct_blueprint(self._settings, self._version))
app.register_blueprint(Devices.construct_blueprint(self._settings, self._backupService))
app.register_blueprint(Sensors.construct_blueprint(self._settings, self._backupService))
app.register_blueprint(Measurements.construct_blueprint(self._settings, self._backupService))
return app
if __name__ == '__main__':
website = StorageLeaf(Constants.APP_NAME)
website.start_server()