diff --git a/kdb-bot/src/bot_api/controller/gui_controller.py b/kdb-bot/src/bot_api/controller/gui_controller.py index dccc2099b6..d956e90099 100644 --- a/kdb-bot/src/bot_api/controller/gui_controller.py +++ b/kdb-bot/src/bot_api/controller/gui_controller.py @@ -4,8 +4,10 @@ from cpl_core.configuration import ConfigurationABC from cpl_core.environment import ApplicationEnvironmentABC from cpl_core.mailing import EMail, EMailClientABC, EMailClientSettings from cpl_translation import TranslatePipe +from flask import jsonify from bot_api.api import Api +from bot_api.configuration.authentication_settings import AuthenticationSettings from bot_api.logging.api_logger import ApiLogger from bot_api.model.settings_dto import SettingsDTO from bot_api.model.version_dto import VersionDTO @@ -23,7 +25,8 @@ class GuiController: t: TranslatePipe, api: Api, mail_settings: EMailClientSettings, - mailer: EMailClientABC + mailer: EMailClientABC, + auth_settings: AuthenticationSettings ): self._config = config self._env = env @@ -32,6 +35,7 @@ class GuiController: self._api = api self._mail_settings = mail_settings self._mailer = mailer + self._auth_settings = auth_settings @Route.get(f'{BasePath}/api-version') async def api_version(self): @@ -42,29 +46,27 @@ class GuiController: @Route.get(f'{BasePath}/settings') @Route.authorize async def settings(self): - # TODO: Authentication import bot_api version = bot_api.version_info - return SettingsDTO( + return jsonify(SettingsDTO( '', VersionDTO(version.major, version.minor, version.micro), os.path.abspath(os.path.join(self._env.working_directory, 'config')), - '', '/', - 0, - 0, + '/', + self._auth_settings.token_expire_time, + self._auth_settings.refresh_token_expire_time, self._mail_settings.user_name, self._mail_settings.port, self._mail_settings.host, self._mail_settings.user_name, self._mail_settings.user_name, - ).to_dict() + ).to_dict()) - @Route.get(f'{BasePath}/send-test-mail/') + @Route.post(f'{BasePath}/send-test-mail/') @Route.authorize async def send_test_mail(self, email: str): - # TODO: Authentication mail = EMail() mail.add_header('Mime-Version: 1.0') mail.add_header('Content-Type: text/plain; charset=utf-8') @@ -73,3 +75,4 @@ class GuiController: mail.subject = self._t.transform('api.api.test_mail.subject') mail.body = self._t.transform('api.api.test_mail.message').format(self._env.host_name, self._env.environment_name) self._mailer.send_mail(mail) + return '', 200 diff --git a/kdb-bot/src/bot_api/model/settings_dto.py b/kdb-bot/src/bot_api/model/settings_dto.py index 567f393126..09df375cf4 100644 --- a/kdb-bot/src/bot_api/model/settings_dto.py +++ b/kdb-bot/src/bot_api/model/settings_dto.py @@ -53,7 +53,7 @@ class SettingsDTO(DtoABC): def to_dict(self) -> dict: return { 'webVersion': self._web_version, - 'apiVersion': self._api_version.to_dict(), + 'apiVersion': self._api_version.str, 'configPath': self._config_path, 'webBaseURL': self._web_base_url, 'apiBaseURL': self._api_base_url, diff --git a/kdb-bot/src/bot_api/model/version_dto.py b/kdb-bot/src/bot_api/model/version_dto.py index c1504478e9..c15413a0ee 100644 --- a/kdb-bot/src/bot_api/model/version_dto.py +++ b/kdb-bot/src/bot_api/model/version_dto.py @@ -14,6 +14,22 @@ class VersionDTO(DtoABC): self._minor = minor self._micro = micro + @property + def major(self) -> str: + return self._major + + @property + def minor(self) -> str: + return self._minor + + @property + def micro(self) -> str: + return self._micro + + @property + def str(self) -> str: + return f'{self._major}.{self._minor}.{self._micro}' + def from_dict(self, values: dict): self._major = values['major'] self._minor = values['minor']