Skip to content

Commit 59a4d12

Browse files
author
James Dalessio
committed
Add thing support and fix listener bug.
1 parent 7347ee9 commit 59a4d12

File tree

3 files changed

+38
-1
lines changed

3 files changed

+38
-1
lines changed

exp/api/__init__.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from .. lib.models.experience import Experience
77
from .. lib.models.content import Content
88
from .. lib.models.data import Data
9+
from .. lib.models.thing import Thing
910

1011

1112
""" Content """
@@ -30,6 +31,20 @@ def create_device(document):
3031
return Device(document).save()
3132

3233

34+
""" Things """
35+
36+
def find_things(**params):
37+
query = api_utils.get('/api/things', params=params)
38+
empty = []
39+
return [Thing(x, _new=False) for x in query.get("results", empty)]
40+
41+
def get_thing(uuid):
42+
return Thing(api_utils.get('/api/things/' + uuid), _new=False)
43+
44+
def create_thing(document):
45+
return Thing(document).save()
46+
47+
3348
""" Experiences """
3449

3550
def find_experiences(**params):

exp/lib/channel.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class Channel(object):
1616

1717
def __init__(self, name):
1818
self._name = name
19-
self._listeners = []
19+
self._listeners = {}
2020
self._responses = {}
2121
self._responders = {}
2222
self._lock = threading.Lock()

exp/lib/models/thing.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
from .. import api_utils
2+
3+
class Thing(object):
4+
5+
def __init__(self, document, _new=True):
6+
self.document = document
7+
self._new = _new
8+
9+
def save(self):
10+
if self._new:
11+
self.document = api_utils.post("/api/things", payload=self.document)
12+
self._new = False
13+
else:
14+
self.document = api_utils.patch("/api/things/" + self.document["uuid"], payload=self.document)
15+
return self
16+
17+
def delete(self):
18+
api_utils.delete("/api/things/" + self.document["uuid"])
19+
return self
20+
21+
22+

0 commit comments

Comments
 (0)