Commit af75e1f7 by Adam Palay

log student answers using POST instead of GET

parent d552eef9
...@@ -34,9 +34,10 @@ def log_event(event): ...@@ -34,9 +34,10 @@ def log_event(event):
def user_track(request): def user_track(request):
""" """
Log when GET call to "event" URL is made by a user. Log when POST call to "event" URL is made by a user. Uses request.REQUEST
to allow for GET calls.
GET call should provide "event_type", "event", and "page" arguments. GET or POST call should provide "event_type", "event", and "page" arguments.
""" """
try: # TODO: Do the same for many of the optional META parameters try: # TODO: Do the same for many of the optional META parameters
username = request.user.username username = request.user.username
...@@ -59,13 +60,13 @@ def user_track(request): ...@@ -59,13 +60,13 @@ def user_track(request):
"session": scookie, "session": scookie,
"ip": request.META['REMOTE_ADDR'], "ip": request.META['REMOTE_ADDR'],
"event_source": "browser", "event_source": "browser",
"event_type": request.GET['event_type'], "event_type": request.REQUEST['event_type'],
"event": request.GET['event'], "event": request.REQUEST['event'],
"agent": agent, "agent": agent,
"page": request.GET['page'], "page": request.REQUEST['page'],
"time": datetime.datetime.now(UTC).isoformat(), "time": datetime.datetime.now(UTC).isoformat(),
"host": request.META['SERVER_NAME'], "host": request.META['SERVER_NAME'],
} }
log_event(event) log_event(event)
return HttpResponse('success') return HttpResponse('success')
...@@ -92,7 +93,7 @@ def server_track(request, event_type, event, page=None): ...@@ -92,7 +93,7 @@ def server_track(request, event_type, event, page=None):
"page": page, "page": page,
"time": datetime.datetime.now(UTC).isoformat(), "time": datetime.datetime.now(UTC).isoformat(),
"host": request.META['SERVER_NAME'], "host": request.META['SERVER_NAME'],
} }
if event_type.startswith("/event_logs") and request.user.is_staff: # don't log if event_type.startswith("/event_logs") and request.user.is_staff: # don't log
return return
...@@ -136,7 +137,7 @@ def task_track(request_info, task_info, event_type, event, page=None): ...@@ -136,7 +137,7 @@ def task_track(request_info, task_info, event_type, event, page=None):
"page": page, "page": page,
"time": datetime.datetime.utcnow().isoformat(), "time": datetime.datetime.utcnow().isoformat(),
"host": request_info.get('host', 'unknown') "host": request_info.get('host', 'unknown')
} }
log_event(event) log_event(event)
......
...@@ -14,9 +14,9 @@ describe 'Logger', -> ...@@ -14,9 +14,9 @@ describe 'Logger', ->
expect(analytics.track).toHaveBeenCalledWith 'seq_goto', value: 'data' expect(analytics.track).toHaveBeenCalledWith 'seq_goto', value: 'data'
it 'send a request to log event', -> it 'send a request to log event', ->
spyOn $, 'getWithPrefix' spyOn $, 'postWithPrefix'
Logger.log 'example', 'data' Logger.log 'example', 'data'
expect($.getWithPrefix).toHaveBeenCalledWith '/event', expect($.postWithPrefix).toHaveBeenCalledWith '/event',
event_type: 'example' event_type: 'example'
event: '"data"' event: '"data"'
page: window.location.href page: window.location.href
......
...@@ -28,7 +28,7 @@ class @Logger ...@@ -28,7 +28,7 @@ class @Logger
callback(event_type, data, element) callback(event_type, data, element)
# Regardless of whether any callbacks were made, log this event. # Regardless of whether any callbacks were made, log this event.
$.getWithPrefix '/event', $.postWithPrefix '/event',
event_type: event_type event_type: event_type
event: JSON.stringify(data) event: JSON.stringify(data)
page: window.location.href page: window.location.href
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment