/
handler.py
92 lines (71 loc) · 2.07 KB
/
handler.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
import dynamo_crud as db
import serializer
from local_utils import get_time_stamp, wrap_response
def hello(event, context):
"""
:param event:
:param context:
:return:
"""
body = {
"message": "Go Serverless v1.0! Your function executed successfully!",
"input": event
}
return wrap_response(body)
def get_video(event, context):
"""
Return list videos
:return:
"""
table = "Videos"
key = {
'VideoId': "3uw0_HT8vVw"
}
video = db.get_item(key=key, table=table)
return wrap_response(video)
def list_videos(event, context):
"""
Return list videos
:return:
"""
if "queryStringParameters" in event:
param = event["queryStringParameters"]
if "channelId" in param:
channelId = param["channelId"]
if "pageToken" in param:
start_key = serializer.deserialize(param["pageToken"])
else:
start_key = None
if "limit" in param:
limit = int(param["limit"])
else:
limit = 20
if "fromDate" in param:
from_date = get_time_stamp(param["fromDate"])
else:
from_date = None
if "toDate" in param:
to_date = get_time_stamp(param["toDate"])
else:
to_date = None
from_db = db.list_videos(channelId=channelId, limit=limit, startKey=start_key, fromDate=from_date, toDate=to_date)
to_client = {
"videos": from_db["Items"]
}
if "LastEvaluatedKey" in from_db:
next_key = serializer.serialize(from_db["LastEvaluatedKey"])
to_client["nextToken"] = next_key
return wrap_response(to_client)
else:
return wrap_response(None)
def list_channels(event, context):
"""
:param event:
:param context:
:return:
"""
from_db = db.list_channels()
to_client ={
"channels": from_db["Items"]
}
return wrap_response(to_client)