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