class EventsHandler(tornado.web.RequestHandler): def initialize(self): self.analytics = MPService() def get(self, action=None): self.set_header('Access-Control-Allow-Origin', '*') self.set_header('Access-Control-Allow-Methods', 'POST, GET, OPTIONS') self.set_header("Access-Control-Allow-Credentials", "true"); self.set_header('Access-Control-Max-Age', 1000) self.set_header('Access-Control-Allow-Headers', 'Authorization, Origin, X-Requested-With, Content-Type, Accept') self.set_header('Content-type', 'application/json') # request a list of events events_list = self.analytics.get_event_list() events_list = ['Video Laser 4x', 'Why Laser 4x', 'Easy to Use Video 4x', 'Reviews', '90-day Money Back', 'Skin Care', 'Free Shipping', 'Warranty'] if action is None: #send events litst back self.write(json.dumps([{"id": i, "label": event} for i, event in enumerate(events_list, 1)])) #self.write(json.dumps([{"id": i, "label": event} for i, event in enumerate(events_list, 1)])) elif action == "data": # get events data default_end_date = datetime.utcnow() default_end_date = default_end_date.replace(hour=0, minute=0, second=0, microsecond=0) default_start_date = default_end_date - timedelta(days = 29) # get query parameters start_date = self.get_argument("startDate", None) end_date = self.get_argument("endDate", None) event_type = self.get_argument("type", "general") unit = self.get_argument("unit", "day") viz = self.get_argument("viz", "line") events = self.get_argument("events", None) if start_date is not None: start_date = datetime.utcfromtimestamp(int(start_date)) else: start_date = default_start_date if end_date is not None: end_date = datetime.utcfromtimestamp(int(end_date)) else: end_date = default_end_date if events is not None: events = json.loads(events) # transform the event string to python list else: events = events_list # call the service to get events data events_data = self.analytics.get_events_data(events, start_date, end_date, unit, event_type, viz) self.write(json.dumps(events_data))