Changing the endpoint used to delete a skill settings block

pull/185/head
Matheus Lima 2019-06-18 15:37:39 -03:00
parent ad1bd532a0
commit 942244cd77
5 changed files with 19 additions and 11 deletions

View File

@ -42,7 +42,7 @@ public.register_blueprint(selene_api)
_log = configure_logger('public_api')
public.add_url_rule(
'/v1/device/<string:device_id>/skill/<string:skill_id>',
'/v1/device/<string:device_id>/skill/<string:skill_gid>',
view_func=DeviceSkillsEndpoint.as_view('device_skill_delete_api'),
methods=['DELETE']
)

View File

@ -96,7 +96,7 @@ class DeviceSkillsEndpoint(PublicEndpoint):
skill_id = SkillRepository(self.db).add(device_id, payload)
return {'uuid': skill_id}, HTTPStatus.OK
def delete(self, device_id, skill_id):
def delete(self, device_id, skill_gid):
self._authenticate(device_id)
DeviceSkillRepository(self.db).delete(device_id, skill_id)
DeviceSkillRepository(self.db).delete(device_id, skill_gid)
return '', HTTPStatus.OK

View File

@ -9,8 +9,8 @@ from selene.data.skill import AccountSkillSetting, SkillSettingRepository
from selene.util.db import connect_to_db
skill = {
'skill_gid': 'wolfram-alpha|19.02',
'identifier': 'wolfram-alpha-123456',
'skill_gid': '@6e1533c1-0040-41e7-a29f-4832320a2360|wolfram-alpha|19.02',
'identifier': '@6e1533c1-0040-41e7-a29f-4832320a2360|wolfram-alpha-123456',
"skillMetadata": {
"sections": [
{
@ -50,7 +50,7 @@ new_settings = {
}
skill_updated = {
'skill_gid': 'wolfram-alpha|19.02',
'skill_gid': '@6e1533c1-0040-41e7-a29f-4832320a2360|wolfram-alpha|19.02',
"skillMetadata": {
"sections": [
{
@ -237,13 +237,12 @@ def validate_empty_skill_uploading(context):
def delete_skill(context):
skills = json.loads(context.get_skill_response.data)
skill_fetched = skills[0]
skill_uuid = skill_fetched['uuid']
login = context.device_login
device_id = login['uuid']
access_token = login['accessToken']
headers = dict(Authorization='Bearer {token}'.format(token=access_token))
context.delete_skill_response = context.client.delete(
'/v1/device/{device_uuid}/skill/{skill_uuid}'.format(device_uuid=device_id, skill_uuid=skill_uuid),
'/v1/device/{device_uuid}/skill/{skill_gid}'.format(device_uuid=device_id, skill_gid=skill['skill_gid']),
headers=headers
)
context.get_skill_after_delete_response = context.client.get(

View File

@ -18,12 +18,12 @@ class DeviceSkillRepository(RepositoryBase):
)
self.cursor.insert(db_request)
def delete(self, device_id, skill_id):
def delete(self, device_id, skill_gid):
db_request = self._build_db_request(
sql_file_name='delete_device_skill.sql',
args=dict(
device_id=device_id,
skill_id=skill_id
skill_gid=skill_gid
)
)
self.cursor.delete(db_request)

View File

@ -1,4 +1,13 @@
DELETE FROM
device.device_skill
WHERE
device_id = %(device_id)s AND skill_id = %(skill_id)s
id = (
SELECT
ds.id
FROM
device.device_skill ds
INNER JOIN
skill.skill s ON ds.skill_id = s.id
WHERE
ds.device_id = %(device_id)s AND s.skill_gid = %(skill_gid)s
)