From 646e45cdd8eb442cd560d8e2d57dd8454488480a Mon Sep 17 00:00:00 2001 From: Jacob Boddey Date: Mon, 5 Aug 2024 15:47:55 +0100 Subject: [PATCH] Check if profiles format has loaded --- framework/python/src/api/api.py | 7 +++++++ framework/python/src/common/session.py | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/framework/python/src/api/api.py b/framework/python/src/api/api.py index 719710694..041be4cc9 100644 --- a/framework/python/src/api/api.py +++ b/framework/python/src/api/api.py @@ -681,6 +681,12 @@ async def update_profile(self, request: Request, response: Response): LOGGER.debug("Received profile update request") + # Check if the profiles format was loaded correctly + if self.get_session().get_profiles_format() is None: + response.status_code = status.HTTP_501_NOT_IMPLEMENTED + return self._generate_msg(False, + "Risk profiles are not available right now") + try: req_raw = (await request.body()).decode("UTF-8") req_json = json.loads(req_raw) @@ -696,6 +702,7 @@ async def update_profile(self, request: Request, response: Response): profile = self.get_session().get_profile(profile_name) if profile is None: + # Create new profile profile = self.get_session().update_profile(req_json) diff --git a/framework/python/src/common/session.py b/framework/python/src/common/session.py index 08e5dda95..1da163d4a 100644 --- a/framework/python/src/common/session.py +++ b/framework/python/src/common/session.py @@ -376,6 +376,10 @@ def _load_profiles(self): 'An error occurred whilst loading the risk assessment format') LOGGER.debug(e) + # If the format JSON fails to load, skip loading profiles + LOGGER.error('Profiles will not be loaded') + return + profile_format_array = [] # Remove internal properties