Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 28 additions & 22 deletions framework/python/src/api/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -247,32 +247,38 @@ async def get_version(self, response: Response):
json_response["installed_version"] = "v" + current_version

# Check latest version number from GitHub API
version_check = requests.get(LATEST_RELEASE_CHECK, timeout=5)
try:
version_check = requests.get(LATEST_RELEASE_CHECK, timeout=5)

# Check OK response was received
if version_check.status_code != 200:
response.status_code = 500
LOGGER.error(version_check.content)
return self._generate_msg(False, "Failed to fetch latest version")

# Extract version number from response, removing the leading 'v'
latest_version_no = version_check.json()["name"].strip("v")
LOGGER.debug(f"Latest version available is {latest_version_no}")

# Craft JSON response
json_response["latest_version"] = "v" + latest_version_no
json_response["latest_version_url"] = version_check.json()["html_url"]

# String comparison between current and latest version
if latest_version_no > current_version:
json_response["update_available"] = True
LOGGER.debug("An update is available")
else:
json_response["update_available"] = False
LOGGER.debug("The latest version is installed")

# Check OK response was received
if version_check.status_code != 200:
return json_response
except Exception as e:
response.status_code = 500
LOGGER.error(version_check.content)
LOGGER.error("Failed to fetch latest version")
LOGGER.debug(e)
return self._generate_msg(False, "Failed to fetch latest version")

# Extract version number from response, removing the leading 'v'
latest_version_no = version_check.json()["name"].strip("v")
LOGGER.debug(f"Latest version available is {latest_version_no}")

# Craft JSON response
json_response["latest_version"] = "v" + latest_version_no
json_response["latest_version_url"] = version_check.json()["html_url"]

# String comparison between current and latest version
if latest_version_no > current_version:
json_response["update_available"] = True
LOGGER.debug("An update is available")
else:
json_response["update_available"] = False
LOGGER.debug("The latest version is installed")

return json_response

async def get_reports(self, request: Request):
LOGGER.debug("Received reports list request")
# Resolve the server IP from the request so we
Expand Down