forked from hwinther/homeautomation
-
Notifications
You must be signed in to change notification settings - Fork 0
/
hatestapp.py
106 lines (99 loc) · 2.86 KB
/
hatestapp.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#!/usr/bin/python
import logging, json
from habase import HomeAutomationQueueThread
from webservicecommon import webservice_json, WebServiceDefinition, webservice_class_instances_add
dataset = [
{'id': 1,
'matvare': 'testmat',
'produsent': 'tine',
'kalorier': 10,
'proteiner': 11,
'karbo': 12,
'fett': 13,
'fiber': 14,
'salt': 15},
{'id': 2,
'matvare': 'testmat 2',
'produsent': 'tine',
'kalorier': 10,
'proteiner': 11,
'karbo': 12,
'fett': 13,
'fiber': 14,
'salt': 15},
{'id': 3,
'matvare': 'testmat 3',
'produsent': 'tine',
'kalorier': 10,
'proteiner': 11,
'karbo': 12,
'fett': 13,
'fiber': 14,
'salt': 15},
{'id': 4,
'matvare': 'testmat 4',
'produsent': 'tine',
'kalorier': 10,
'proteiner': 11,
'karbo': 12,
'fett': 13,
'fiber': 14,
'salt': 15},
{'id': 5,
'matvare': 'testmat 5',
'produsent': 'tine',
'kalorier': 10,
'proteiner': 11,
'karbo': 12,
'fett': 13,
'fiber': 14,
'salt': 15},
]
# region Web methods
class martin_testws_data(object):
@webservice_json
def GET(self, page):
logging.info('WebService_TestWS reading up to page ' + page)
_page = 0
try:
_page = int(page)
except:
pass
ndataset = []
for x in dataset:
if x['id'] <= _page:
ndataset.append(x)
return json.dumps(ndataset)
class martin_testws_reverse_data(object):
@webservice_json
def GET(self, page):
logging.info('WebService_TestWS pages past ' + page)
_page = 0
try:
_page = int(page)
except:
pass
ndataset = []
for x in dataset:
if x['id'] >= _page:
ndataset.append(x)
return json.dumps(ndataset)
# endregion
class HATestApp(HomeAutomationQueueThread):
webservice_definitions = [
WebServiceDefinition(
url='/martintest/(\d+)', cl='martin_testws_data', jsurl='/WebService_TestWS/', jsname='WebService_TestWS'),
WebServiceDefinition(
url='/martintest/reverse/(\d+)', cl='martin_testws_reverse_data', jsurl='/WebService_TestWSRev/', jsname='WebService_TestWSRev'),
]
# region Method overrides
def __init__(self, name, callback_function, queue, threadlist):
HomeAutomationQueueThread.__init__(self, name, callback_function, queue, threadlist)
def post_processqueue(self):
webservice_class_instances_add(self.get_class_name(), self)
# TODO: can this be solved via a decorator?
# threadmanager (main thread) should also keep this updated.. a good example for signals
# super(HATestApp, self).pre_processqueue()
def get_class_name(self):
return self.__class__.__name__
# endregion