equal
deleted
inserted
replaced
|
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) |