From c19ae24161af4939c1262cdee8f8fca91af6b0bf Mon Sep 17 00:00:00 2001 From: Matheus Lima Date: Fri, 26 Oct 2018 17:45:38 -0300 Subject: [PATCH 1/2] Created validations for the cases where user doesn't have any skills or the user doesn't have the skill installer --- .../market_api/endpoints/skill_install.py | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/market/backend/v1/market-api/market_api/endpoints/skill_install.py b/market/backend/v1/market-api/market_api/endpoints/skill_install.py index 8295d7a4..6a4bdc4e 100644 --- a/market/backend/v1/market-api/market_api/endpoints/skill_install.py +++ b/market/backend/v1/market-api/market_api/endpoints/skill_install.py @@ -66,11 +66,22 @@ class SkillInstallEndpoint(SeleneEndpoint): def _find_installer_skill(self, installed_skills): installer_skill = None - for skill in installed_skills['skills']: - if skill['skill']['name'] == 'Installer': - self.device_uuid = skill['deviceUuid'] - installer_skill = skill['skill'] - break + if "skills" in installed_skills: + for skill in installed_skills['skills']: + if skill['skill']['name'] == 'Installer': + self.device_uuid = skill['deviceUuid'] + installer_skill = skill['skill'] + break + if installer_skill is None: + error_message = ( + 'found no skill installer' + ) + _log.error(error_message) + self.response = (error_message, HTTPStatus.PARTIAL_CONTENT) + raise APIError() + else: + self.response = HTTPStatus.NO_CONTENT + raise APIError() return installer_skill From f45caa2583da4654090803d0bf92976d5f648405 Mon Sep 17 00:00:00 2001 From: Matheus Lima Date: Fri, 26 Oct 2018 17:49:08 -0300 Subject: [PATCH 2/2] changed status error and message --- .../market-api/market_api/endpoints/skill_install.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/market/backend/v1/market-api/market_api/endpoints/skill_install.py b/market/backend/v1/market-api/market_api/endpoints/skill_install.py index 6a4bdc4e..4bad87c7 100644 --- a/market/backend/v1/market-api/market_api/endpoints/skill_install.py +++ b/market/backend/v1/market-api/market_api/endpoints/skill_install.py @@ -66,6 +66,9 @@ class SkillInstallEndpoint(SeleneEndpoint): def _find_installer_skill(self, installed_skills): installer_skill = None + error_message = ( + 'install failed: installer skill not found' + ) if "skills" in installed_skills: for skill in installed_skills['skills']: if skill['skill']['name'] == 'Installer': @@ -73,14 +76,12 @@ class SkillInstallEndpoint(SeleneEndpoint): installer_skill = skill['skill'] break if installer_skill is None: - error_message = ( - 'found no skill installer' - ) _log.error(error_message) - self.response = (error_message, HTTPStatus.PARTIAL_CONTENT) + self.response = (error_message, HTTPStatus.INTERNAL_SERVER_ERROR) raise APIError() else: - self.response = HTTPStatus.NO_CONTENT + _log.error(error_message) + self.response = (error_message, HTTPStatus.INTERNAL_SERVER_ERROR) raise APIError() return installer_skill