annot-server/baseserver.py
changeset 0 e1d4d7a8255a
child 31 2323ee3ad20f
equal deleted inserted replaced
-1:000000000000 0:e1d4d7a8255a
       
     1 
       
     2 #
       
     3 # See LICENCE for detail
       
     4 # Copyright (c) 2014 IRI
       
     5 #
       
     6 
       
     7 import copy
       
     8 import datetime
       
     9 import uuid
       
    10 import json
       
    11 
       
    12 from models import insert_annot_async
       
    13 
       
    14 class BaseProtocol(object) :
       
    15 
       
    16     def _init_props(self, ws_factory, conn):
       
    17         self.conn = conn
       
    18         self.ws_factory = ws_factory
       
    19 
       
    20 
       
    21     """
       
    22     Mixin class to add helper methods
       
    23     """
       
    24     def process_annotation(self, params):
       
    25 
       
    26         ts = params.setdefault('ts', datetime.datetime.utcnow())
       
    27         uuid_val = params.setdefault('uuid', uuid.uuid4())
       
    28 
       
    29         params_broadcast = copy.copy(params)
       
    30         params_broadcast.update({ 'ts' : ts.isoformat()+'Z'})
       
    31         params_broadcast['uuid'] = str(params_broadcast['uuid'])
       
    32 
       
    33         #broadcast to websocket
       
    34         self.ws_factory.broadcast(json.dumps(params_broadcast), params_broadcast)
       
    35 
       
    36         #TODO treat errors
       
    37         return insert_annot_async(params, self.conn)