From 73656ed0f761a00c99e4f43fa79ff3341b985704 Mon Sep 17 00:00:00 2001 From: Dan <35927536+dan-mba@users.noreply.github.com> Date: Tue, 2 Jan 2024 14:01:48 -0500 Subject: [PATCH] change DELETE rating & skill separator --- README.md | 16 +++------------- dynamodb/delete.py | 11 +++++++++-- template.yaml | 2 +- 3 files changed, 13 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 60b1aba..94aa911 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ GET /Skills - Get all skills
GET /Skills/{rating} = Get skill with specified rating
POST /Skills - Add skill -```json +```js body: { "rating": "rating Integer", "skill": "skill String" @@ -22,7 +22,7 @@ body: { ``` PUT /Skills - Update skill rating -```json +```js body: { "oldrating": "current rating Integer", "newrating": "new rating Integer", @@ -30,17 +30,7 @@ body: { } ``` -DELETE /Skills/{skill_id} - Delete selected skill -```js -//Skill ID is rating & skill separated by the hash character -//In JavaScript -skill_id = encodeURIComponent(`${rating}#${skill}`) - -``` -```python -#In Python -skill_id = urllib.parse.quote(f"{rating}#{skill}") -``` +DELETE /Skills/{rating}/{skill} - Delete selected skill DELETE /Skills/ALL_SKILLS - Delete all skills diff --git a/dynamodb/delete.py b/dynamodb/delete.py index 964a11b..7e871d7 100644 --- a/dynamodb/delete.py +++ b/dynamodb/delete.py @@ -29,8 +29,15 @@ def lambda_handler(event, context): name = unquote(name); if name != 'ALL_SKILLS': + keys = name.split('/') + if len(keys) != 2: + return respond({ + 'message': 'DELETE required parameter malformed' + }) + sk = '#'.join(keys) + try: - table.delete_item(Key={'PK': userid, 'SK': name}) + table.delete_item(Key={'PK': userid, 'SK': sk}) response = {'message': 'Skill deleted', 'name': name } except ClientError as error: @@ -39,7 +46,7 @@ def lambda_handler(event, context): return respond(str(error)) return respond(None, response) - + try: expression = Key('PK').eq(userid) query_results = table.query(KeyConditionExpression=expression) diff --git a/template.yaml b/template.yaml index 487e3ef..c23b20a 100644 --- a/template.yaml +++ b/template.yaml @@ -156,7 +156,7 @@ Resources: Delete: Type: HttpApi Properties: - Path: /Skills/{name} + Path: /Skills/{name+} Method: delete ApiId: !Ref ApiResource