added the skill_id to the AccountSkillSetting object to know which skill the settings are for.

pull/160/head
Chris Veilleux 2019-05-24 16:17:17 -05:00
parent 1937486249
commit ab0a7f5932
4 changed files with 9 additions and 14 deletions

View File

@ -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)

View File

@ -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')

View File

@ -4,6 +4,7 @@ from typing import List
@dataclass
class AccountSkillSetting(object):
skill_id: str
settings_display: dict
settings_values: dict
devices: List[str]

View File

@ -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)
)
)