def send(): """ Assuming this is the central portal for all application event that must pass though here. This way every event can be replayed if something happens """ event = request.form['event'] if event: event = json.loads(event) # Parse timstamp from javascript event['timestamp'] = datetime.fromtimestamp(float(event['timestamp'])/1000.0) us = get_user_session() if us is not None: us.add_event(event) else: model.Event.save(event) r = handlers.publish(event) if r: return jsonify(r) return jsonify({'success':True})
import model model.setup_engine() import handlers from sqlalchemy import distinct session = model.get_session() sids = session.query(distinct(model.Error.session_id)) for r in sids: us = model.UserSession.by_id(r[0]) for e in us.events: handlers.publish({"type": e.type, "timestamp": e.timestamp, "data": e.data})