/
index.py
120 lines (96 loc) · 3.87 KB
/
index.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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
import os
import logging
import analytics
import dateutil.parser
from pprint import pprint
from datetime import datetime
from flask import Flask, request, json
PORT = os.environ.get('PORT', 4000)
analytics.write_key = 'i6aoC3CdUjS4BvSOvmJQguLBAlvzt6kG'
analytics.debug = True
app = Flask(__name__)
def format_response (event_name):
return json.dumps({'message': 'Successs', 'event': event_name})
def format_timestamp (timestamp):
if timestamp is None:
timestamp = str(datetime.now())
return dateutil.parser.parse(timestamp)
@app.route("/identify", methods=['POST'])
def identify():
try:
content = request.get_json(silent=True)
_userId = content.get('userId')
_traits = content.get('traits')
_context = content.get('context')
_timestamp = format_timestamp(content.get('timestamp'))
_anonymous_id = content.get('anonymousId')
_integrations = content.get('integrations')
res = analytics.identify(_userId, _traits, _context, _timestamp, _anonymous_id, _integrations)
return format_response('identify')
except Exception as e:
return json.dumps({'error': str(e)})
@app.route("/alias", methods=['POST'])
def alias():
try:
content = request.get_json(silent=True)
_previous_id = content.get('previousId')
_userId = content.get('userId')
_context = content.get('context')
_timestamp = format_timestamp(content.get('timestamp'))
_integrations = content.get('integrations')
analytics.alias(_previous_id, _userId, _context, _timestamp, _integrations)
return format_response('alias')
except Exception as e:
return json.dumps({'error': str(e)})
@app.route("/page", methods=['POST'])
def page():
try:
content = request.get_json(silent=True)
print(content)
_userId = content.get('userId')
_event = content.get('event')
_category = content.get('category')
_name = content.get('name')
_properties = content.get('properties')
_context = content.get('context')
_timestamp = format_timestamp(content.get('timestamp'))
_anonymous_id = content.get('anonymousId')
_integrations = content.get('integrations')
analytics.page(_userId, _category, _name, _properties, _context, _timestamp, _anonymous_id, _integrations)
return format_response('page')
except Exception as e:
return json.dumps({'error': str(e)})
@app.route("/track", methods=['POST'])
def track():
try:
content = request.get_json(silent=True)
_userId = content.get('userId')
_event = content.get('event')
_properties = content.get('properties')
_context = content.get('context')
_timestamp = format_timestamp(content.get('timestamp'))
_anonymous_id = content.get('anonymousId')
_integrations = content.get('integrations')
analytics.flush()
analytics.track(_userId, _event, _properties, _context, _timestamp, _anonymous_id, _integrations)
return format_response('track')
except Exception as e:
return json.dumps({'error': str(e)})
@app.route("/group", methods=['POST'])
def group():
try:
content = request.get_json(silent=True)
_userId = content.get('userId')
_groupId = content.get('groupId')
_traits = content.get('traits')
_context = content.get('context')
_timestamp = format_timestamp(content.get('timestamp'))
_anonymous_id = content.get('anonymousId')
_integrations = content.get('integrations')
analytics.flush()
analytics.group(_userId, _groupId, _traits, _context, _timestamp, _anonymous_id, _integrations)
return format_response('group')
except Exception as e:
return json.dumps({'error': str(e)})
if __name__ == "__main__":
app.run(host='0.0.0.0', port=int(PORT), debug=True)