diff --git a/application/common/config.py b/application/common/config.py index cb3b0a0a62764db24c53c1ed66d7e6b97f18b307..86c695c40c035ea87483ba657a2a25c8c708dd73 100644 --- a/application/common/config.py +++ b/application/common/config.py @@ -14,6 +14,7 @@ from typing import Any from flask import Flask +from loguru import logger class ConfigHelper: @@ -27,14 +28,18 @@ class ConfigHelper: def __init__(self, app: Flask): self.app = app - def get_config(self, key: str) -> Any: + def __getattr__(self, name): """ - Fetch a config value based on the provided key. + Get a config value as an attribute. - :param key: The key for the config value. - :return: The value for the provided key. + :param name: The name of the config key. + :return: The value for the provided key, or None if it does not exist. """ - return self.app.config.get(key) + try: + return self.app.config[name] + except KeyError: + logger.error(f'Key {name} error') + raise KeyError(f'Key {name} error') def __repr__(self): return f"" diff --git a/application/lib/flask_elasticsearch/elasticsearch.py b/application/lib/flask_elasticsearch/elasticsearch.py index b1b74cde247817554cbd3d9b6fbe121538b9c9a7..9888a32f4bc3aeb7f222baedb8269e7caf42c2e0 100644 --- a/application/lib/flask_elasticsearch/elasticsearch.py +++ b/application/lib/flask_elasticsearch/elasticsearch.py @@ -50,8 +50,8 @@ class FlaskElasticsearch: if ctx.elasticsearch.ping(): logger.info('Connected to Elasticsearch') else: - logger.error('Connected to Elasticsearch') - raise ConnectionError('Connected to Elasticsearch') + logger.error('Can not connect to Elasticsearch') + raise ConnectionError('Can not connect to Elasticsearch') return getattr(ctx.elasticsearch, item) @staticmethod @@ -60,7 +60,7 @@ class FlaskElasticsearch: with current_app.app_context(): if current_app: config_helper = ConfigHelper(current_app) - cfg = config_helper.get_config('Elasticsearch') + cfg = config_helper.Elasticsearch if cfg is None: raise KeyError('Key Elasticsearch is not defined') diff --git a/application/views/user/user.py b/application/views/user/user.py index 9c69d6b87a72ff582347d539069e54048fdbf145..4de1dc197c173a62bd3ecb400085d02c2ad20c0a 100644 --- a/application/views/user/user.py +++ b/application/views/user/user.py @@ -17,6 +17,7 @@ from marshmallow import ValidationError from application.schemas import UserSchema from application.utils import ElasticsearchUtils +from application.common import ConfigHelper user_api = Blueprint('user_api', __name__) @@ -51,6 +52,9 @@ def create_user(): @user_api.route('/tests', methods=['POST']) def test_user(): + ch = ConfigHelper(current_app) + print(ch.System) + print(ch.Sys) data = request.get_json() start = data.get('start') end = data.get('end')