def post(self, request, format=None): r = rethink() d = request.DATA serializers = [] for entry in d['entries']: s = LogEntrySerializer(data=entry) if not s.is_valid(): return error_response(s, entry) serializers.append(s) check(s.save(r)) ret = { 'entries': [s.data for s in serializers] } return Response(ret, status=201)
def on_got_message(sender, message=None, **kwargs): if message.message in ('session start', 'session end'): r = rethink() new = False if message.message == 'session start': d = {} d['id'] = message.id d['start_time'] = message.timestamp d['user'] = message.user new = True else: # find the existing session to close d = list(r.table('sessions').filter( lambda e: e['user'] == message.user ).order_by('start_time').limit(1).run())[0] d['end_time'] = message.timestamp s = SessionSerializer(data=d) if new: check(s.insert(r)) else: check(s.update(r))