Skip to content

Commit 2d6ad8a

Browse files
committed
ServerLess - API
1 parent 1ea5e96 commit 2d6ad8a

File tree

2 files changed

+133
-0
lines changed

2 files changed

+133
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
{
2+
"tasktype":"create",
3+
"data":{
4+
"id": "1",
5+
"name": "Putin",
6+
"breed": "Joe",
7+
"gender": "male",
8+
"owner": "Trump",
9+
"birthday": "2012-05-15"
10+
}
11+
}
12+
13+
{
14+
"tasktype":"read",
15+
"data":{
16+
"id": "1"
17+
}
18+
}
19+
20+
{
21+
"tasktype":"update",
22+
"data":{
23+
"id": "1",
24+
"name": "Harry",
25+
"breed": "Joe",
26+
"gender": "Male",
27+
"owner": "Mike",
28+
"birthday": "2012-05-15"
29+
}
30+
}
31+
32+
{
33+
"tasktype":"delete",
34+
"data":{
35+
"id": "1"
36+
}
37+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
import boto3
2+
3+
4+
class PetShop:
5+
6+
def __init__(self):
7+
client = boto3.resource('dynamodb')
8+
self.table = client.Table('Pets')
9+
10+
def Create_data(self , event):
11+
response = self.table.put_item(
12+
Item={
13+
'id': event['id'],
14+
'name': event['name'],
15+
'breed': event['breed'],
16+
'gender': event['gender'],
17+
'owner': event['owner'],
18+
'birthday': event['birthday']
19+
}
20+
)
21+
return {
22+
'statusCode': response['ResponseMetadata']['HTTPStatusCode'],
23+
'body': 'Record ' + event['id'] + ' added'
24+
}
25+
26+
def Read_data(self , event):
27+
response = self.table.get_item(
28+
Key={
29+
'id': event['id']
30+
}
31+
)
32+
if 'Item' in response:
33+
return response['Item']
34+
else:
35+
return {
36+
'statusCode': '404',
37+
'body': 'Not found'
38+
}
39+
40+
def Update_data(self , event):
41+
response = self.table.update_item(
42+
Key={'id': event['id']},
43+
ExpressionAttributeNames={
44+
'#N': 'name',
45+
'#B': 'breed',
46+
'#G': 'gender',
47+
'#O': 'owner',
48+
'#K': 'birthday'
49+
},
50+
ExpressionAttributeValues={
51+
':n': event['name'],
52+
':b':event['breed'],
53+
':g': event['gender'],
54+
':o': event['owner'],
55+
':k': event['birthday'],
56+
},
57+
UpdateExpression='SET #N = :n, #B = :b, #G = :g, #O = :o, #K = :k',
58+
ReturnValues="UPDATED_NEW"
59+
)
60+
return {
61+
'statusCode': response['ResponseMetadata']['HTTPStatusCode'],
62+
'body': 'Record ' + event['id'] + ' updated'
63+
}
64+
65+
def Delete_data(self , event):
66+
response = self.table.delete_item(
67+
Key={
68+
'id': event['id']
69+
}
70+
)
71+
72+
return {
73+
'statusCode': '200',
74+
'body': 'Deleted the item with id :' + event['id']
75+
}
76+
77+
def lambda_handler(event, context):
78+
if event:
79+
pet_Object = PetShop()
80+
if event['tasktype'] == "create":
81+
create_result = pet_Object.Create_data(event['data'])
82+
return create_result
83+
elif event['tasktype'] == "read":
84+
read_result = pet_Object.Read_data(event['data'])
85+
return read_result
86+
elif event['tasktype'] == "update":
87+
update_result = pet_Object.Update_data(event['data'])
88+
return update_result
89+
elif event['tasktype'] == "delete":
90+
delete_result = pet_Object.Delete_data(event['data'])
91+
return delete_result
92+
else :
93+
return {
94+
'statusCode': '404',
95+
'body': 'Not found'
96+
}

0 commit comments

Comments
 (0)