Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit ca6674f

Browse files
committed
add CRUD methods for collections
1 parent b267f54 commit ca6674f

File tree

2 files changed

+64
-4
lines changed

2 files changed

+64
-4
lines changed

stream/collections.py

+34-4
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def upsert(self, collection_name, data):
3333

3434
data_json = {collection_name: data}
3535

36-
response = self.client.post('meta/', service_name='api',
36+
response = self.client.post('collections/', service_name='api',
3737
signature=self.token, data={'data': data_json})
3838
return response
3939

@@ -59,12 +59,12 @@ def select(self, collection_name, ids):
5959
foreign_ids.append('%s:%s' % (collection_name, ids[i]))
6060
foreign_ids = ','.join(foreign_ids)
6161

62-
response = self.client.get('meta/', service_name='api', params={'foreign_ids': foreign_ids},
62+
response = self.client.get('collections/', service_name='api', params={'foreign_ids': foreign_ids},
6363
signature=self.token)
6464

6565
return response
6666

67-
def delete(self, collection_name, ids):
67+
def delete_many(self, collection_name, ids):
6868
"""
6969
Delete data from meta.
7070
:param collection_name: Collection Name i.e 'user'
@@ -82,7 +82,37 @@ def delete(self, collection_name, ids):
8282

8383
params = {'collection_name': collection_name, 'ids': ids}
8484

85-
response = self.client.delete('meta/', service_name='api', params=params,
85+
response = self.client.delete('collections/', service_name='api', params=params,
8686
signature=self.token)
8787

8888
return response
89+
90+
def add(self, collection_name, data, id=None, user_id=None):
91+
payload = dict(
92+
id=id, data=data, user_id=user_id,
93+
)
94+
return self.client.post(
95+
"collections/%s" % collection_name,
96+
service_name="api",
97+
signature=self.token,
98+
data=payload,
99+
)
100+
101+
def get(self, collection_name, id):
102+
return self.client.get(
103+
"collections/%s/%s" % (collection_name, id), service_name="api", signature=self.token
104+
)
105+
106+
def update(self, collection_name, id, data=None):
107+
payload = dict(data=data)
108+
return self.client.put(
109+
"collections/%s/%s" % (collection_name, id),
110+
service_name="api",
111+
signature=self.token,
112+
data=payload,
113+
)
114+
115+
def delete(self, collection_name, id):
116+
return self.client.delete(
117+
"collections/%s/%s" % (collection_name, id), service_name="api", signature=self.token
118+
)

stream/tests/test_client.py

+30
Original file line numberDiff line numberDiff line change
@@ -1303,3 +1303,33 @@ def test_user_update(self):
13031303
def test_user_delete(self):
13041304
response = self.c.users.add(str(uuid1()))
13051305
self.c.users.delete(response["id"])
1306+
1307+
def test_collections_add(self):
1308+
self.c.collections.add("items", {"data": 1}, id=str(uuid1()), user_id="tom")
1309+
1310+
def test_collections_add_twice(self):
1311+
id = str(uuid1())
1312+
r1 = self.c.collections.add("items", {"data": 1}, id=id)
1313+
r2 = self.c.collections.add("items", {"data": 2}, id=id)
1314+
entry = self.c.collections.get("items", id)
1315+
self.assertEqual(entry["data"], r2["data"])
1316+
self.assertEqual(r1["created_at"], r2["created_at"])
1317+
self.assertNotEqual(r1["updated_at"], r2["updated_at"])
1318+
1319+
def test_collections_get(self):
1320+
response = self.c.collections.add("items", {"data": 1}, id=str(uuid1()))
1321+
entry = self.c.collections.get("items", response["id"])
1322+
self.assertEqual(entry["data"], {"data": 1})
1323+
self.assertIn("created_at", entry)
1324+
self.assertIn("updated_at", entry)
1325+
self.assertIn("id", entry)
1326+
1327+
def test_collections_update(self):
1328+
response = self.c.collections.add("items", {"data": 1}, str(uuid1()))
1329+
self.c.collections.update("items", response["id"], data={"changed": True})
1330+
entry = self.c.collections.get("items", response["id"])
1331+
self.assertEqual(entry["data"], {"changed": True})
1332+
1333+
def test_collections_delete(self):
1334+
response = self.c.collections.add("items", {"data": 1}, str(uuid1()))
1335+
self.c.collections.delete("items", response["id"])

0 commit comments

Comments
 (0)