-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpost-handler.py
More file actions
74 lines (61 loc) · 2.26 KB
/
post-handler.py
File metadata and controls
74 lines (61 loc) · 2.26 KB
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
import json
import boto3
dynamodb = boto3.resource('dynamodb')
events = dynamodb.Table('Perhap-Events')
domains = dynamodb.Table('Perhap-Domains')
entities = dynamodb.Table('Perhap-Entities')
def time_order_uuid(id):
time_low,time_mid,time_hi_and_version,clock_seq_hi_and_reserved,clock_seq_low = id.split("-")
return time_hi_and_version + "-" + time_mid + "-" + time_low + "-" + clock_seq_hi_and_reserved + "-" + clock_seq_low
def post_item(item, realm, domain, entity):
add_event = events.put_item(Item = item)
add_domain = domains.put_item(Item = {'Realm': realm, 'PerhapDomain': domain})
add_entity = entities.put_item(Item = {'PerhapDomain': domain, 'Entity': entity})
# kinesis.put_record("Perhap-Kinesis", json.dumps(user), "partitionkey")
return add_event
def new_event(event, context):
event_data = json.loads(event['body'])
event_id = event['pathParameters']['event-id']
domain = event['pathParameters']['domain']
realm = event['pathParameters']['realm']
entity = event['pathParameters']['entity']
event_type = event['pathParameters']['event-type']
time_order_id= time_order_uuid(event_id)
item= {
'Realm': realm,
'Domain': domain,
'Entity': entity,
'EventType': event_type,
'EventId': event_id,
'EventData': event_data,
'OrderedId': time_order_id
}
add_event= post_item(item, realm, domain, entity)
response = {
"statusCode": add_event["ResponseMetadata"]["HTTPStatusCode"]
}
return response
def bulk_post(event, context):
events = json.loads(event['body'])['events']
for event in events:
event_data = event['event-data']
event_id = event['event-id']
domain = event['domain']
realm = event['realm']
entity = event['entity']
event_type = event['event-type']
time_order_id= time_order_uuid(event_id)
item= {
'Realm': realm,
'Domain': domain,
'Entity': entity,
'EventType': event_type,
'EventId': event_id,
'EventData': event_data,
'OrderedId': time_order_id
}
add_event= post_item(item, realm, domain, entity)
response = {
"statusCode": 202
}
return response