Skip to content

Commit

Permalink
Merge pull request openedx#6 from ucsd-ets/arslan/base-caliper-transf…
Browse files Browse the repository at this point in the history
…ormer

WIP: Basic structure for base transformer
  • Loading branch information
Tasawer Nawaz authored Oct 29, 2018
2 parents a25b7e6 + 3de2231 commit ed79500
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 5 deletions.
40 changes: 36 additions & 4 deletions openedx/features/caliper_tracking/base_transformer.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
"""
Base module containing generic caliper transformer class
"""

import uuid
from datetime import datetime

from django.core.urlresolvers import reverse


CALIPER_EVENT_CONTEXT = 'http://purl.imsglobal.org/ctx/caliper/v1p1'


class CaliperBaseTransformer(object):
Expand All @@ -14,13 +19,40 @@ class CaliperBaseTransformer(object):
def __init__(self, event):
"""Constructor
Adds all of the generic fields to the event object
@param event: unprocessed event dict
"""
self.event = event
self.caliper_event = dict()
self.caliper_event['uuid'] = str(uuid.uuid4().urn)
self.add_generic_fields()
self.add_actor_info()

def add_generic_fields(self):
"""
Adds all of the generic fields to the event object
"""
self.caliper_event.update({
'@context': CALIPER_EVENT_CONTEXT,
'id': str(uuid.uuid4().urn),
'edx_event_type': self.event.get('event_type'),
'host': self.event.get('host'),
'session': self.event.get('session'),
'referer': self.event.get('referer'),
'user_id': self.event['context'].get('user_id'),
'org_id': self.event['context'].get('org_id'),
'course_id': self.event['context'].get('course_id'),
'path': self.event['context'].get('path'),
'eventTime': datetime.now().isoformat('T')
})

def add_actor_info(self):
self.caliper_event['actor'] = dict()
user_profile_link = str(reverse(
'learner_profile', kwargs={'username': self.event.get('username')}
))
self.caliper_event['actor'].update({
'id': user_profile_link,
'ip': self.event.get('ip')
})

def transform_event(self):
return self.caliper_event
4 changes: 3 additions & 1 deletion openedx/features/caliper_tracking/caliper_config.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
from openedx.features.caliper_tracking.transformers.bookmark_transformers import edx_bookmark_listed


"""Mapping of events to their transformer functions
"""
Mapping of events to their transformer functions
"""

EVENT_MAPPING = {
'edx.bookmark.listed': edx_bookmark_listed,
}

0 comments on commit ed79500

Please sign in to comment.