author | ymh <ymh.work@gmail.com> |
Fri, 17 Apr 2015 15:20:46 +0200 | |
changeset 165 | 7dfdafb88968 |
parent 32 | dc1c745850d8 |
permissions | -rw-r--r-- |
0 | 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 |
||
31 | 12 |
from dateutil.tz import tzutc |
13 |
||
0 | 14 |
from models import insert_annot_async |
15 |
||
16 |
class BaseProtocol(object) : |
|
17 |
||
18 |
def _init_props(self, ws_factory, conn): |
|
19 |
self.conn = conn |
|
20 |
self.ws_factory = ws_factory |
|
21 |
||
22 |
||
23 |
""" |
|
24 |
Mixin class to add helper methods |
|
25 |
""" |
|
26 |
def process_annotation(self, params): |
|
27 |
||
165 | 28 |
now = datetime.datetime.now(tzutc()) |
29 |
ts = params.setdefault('ts', now) |
|
31 | 30 |
if ts.tzinfo is None: |
31 |
ts = ts.replace(tzinfo=tzutc()) |
|
32
dc1c745850d8
small correction on timezone management
ymh <ymh.work@gmail.com>
parents:
31
diff
changeset
|
32 |
params['ts'] = ts |
0 | 33 |
uuid_val = params.setdefault('uuid', uuid.uuid4()) |
34 |
||
35 |
params_broadcast = copy.copy(params) |
|
31 | 36 |
params_broadcast.update({ 'ts' : ts.isoformat() }) |
165 | 37 |
params_broadcast['ts_server'] = now.isoformat() |
0 | 38 |
params_broadcast['uuid'] = str(params_broadcast['uuid']) |
39 |
||
40 |
#broadcast to websocket |
|
41 |
self.ws_factory.broadcast(json.dumps(params_broadcast), params_broadcast) |
|
42 |
||
43 |
#TODO treat errors |
|
44 |
return insert_annot_async(params, self.conn) |