diff --git a/api/market/market_api/endpoints/skill_install.py b/api/market/market_api/endpoints/skill_install.py index e0c15a29..c8f1d6a8 100644 --- a/api/market/market_api/endpoints/skill_install.py +++ b/api/market/market_api/endpoints/skill_install.py @@ -108,9 +108,6 @@ class SkillInstallEndpoint(SeleneEndpoint): settings.settings_values[section] = setting_value self._update_skill_settings(settings) - def _update_skill_settings(self, settings): + def _update_skill_settings(self, new_skill_settings): """Update the DB with the new installer skill settings.""" - self.settings_repo.update_skill_settings( - settings.devices, - settings.settings_values - ) + self.settings_repo.update_skill_settings(new_skill_settings) diff --git a/api/public/tests/features/steps/device_skills.py b/api/public/tests/features/steps/device_skills.py index 0c07bde6..a28e1bf5 100644 --- a/api/public/tests/features/steps/device_skills.py +++ b/api/public/tests/features/steps/device_skills.py @@ -100,16 +100,16 @@ def create_skill_settings(context): @when('the skill settings are updated') def update_skill(context): + response = json.loads(context.upload_device_response.data) update_settings = [AccountSkillSetting( + skill_id=response['uuid'], settings_display={}, settings_values=new_settings, devices=[context.device_name] )] - response = json.loads(context.upload_device_response.data) - skill_id = response['uuid'] db = connect_to_db(context.client_config['DB_CONNECTION_CONFIG']) skill_setting_repo = SkillSettingRepository(db, context.account.id) - skill_setting_repo.update_skill_settings(skill_id, update_settings) + skill_setting_repo.update_skill_settings(update_settings) @when('the skill settings is fetched') diff --git a/shared/selene/data/skill/entity/skill_setting.py b/shared/selene/data/skill/entity/skill_setting.py index b7722a1e..d012b8e4 100644 --- a/shared/selene/data/skill/entity/skill_setting.py +++ b/shared/selene/data/skill/entity/skill_setting.py @@ -4,6 +4,7 @@ from typing import List @dataclass class AccountSkillSetting(object): + skill_id: str settings_display: dict settings_values: dict devices: List[str] diff --git a/shared/selene/data/skill/repository/setting.py b/shared/selene/data/skill/repository/setting.py index 30894f40..a02c4603 100644 --- a/shared/selene/data/skill/repository/setting.py +++ b/shared/selene/data/skill/repository/setting.py @@ -25,6 +25,7 @@ class SkillSettingRepository(RepositoryBase): settings_display = row['settings_display']['skillMetadata'] skill_settings.append( AccountSkillSetting( + skill_id=skill_id, settings_display=settings_display, settings_values=row['settings_values'], devices=row['devices'] @@ -48,18 +49,14 @@ class SkillSettingRepository(RepositoryBase): return skill_settings @use_transaction - def update_skill_settings( - self, - skill_id: str, - skill_settings: List[AccountSkillSetting] - ): + def update_skill_settings(self, skill_settings: List[AccountSkillSetting]): for settings_group in skill_settings: db_request = self._build_db_request( 'update_device_skill_settings.sql', args=dict( account_id=self.account_id, settings_values=json.dumps(settings_group.settings_values), - skill_id=skill_id, + skill_id=settings_group.skill_id, device_names=tuple(settings_group.devices) ) )