Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions synapsepy/client.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@

from .helpers import json_serialize
from .http_client import HttpClient

from .user import User, Users
Expand Down Expand Up @@ -280,7 +281,7 @@ def get_all_users(self, query=None, page=None, per_page=None, show_refresh_token
)
return Users(response, self.http)

def get_all_trans(self, page=None, per_page=None):
def get_all_trans(self, page=None, per_page=None, filter=None):
'''Gets all client transactions
Args:
page (int): (opt) Page number
Expand All @@ -289,10 +290,12 @@ def get_all_trans(self, page=None, per_page=None):
(Transactions): object containing pagination info and list of Transaction objects
'''
self.logger.debug("getting all transactions")


filter = json_serialize(filter)

path = paths['trans']
response = self.http.get(
path, page=page, per_page=per_page
path, page=page, per_page=per_page, filter=filter,
)
return Transactions(response)

Expand Down
15 changes: 15 additions & 0 deletions synapsepy/helpers.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import json

def json_serialize(obj):
if obj is None:
pass # No obj, don’t serialize.
elif isinstance(obj, str):
try:
_ = json.loads(obj) # All good, a valid JSON string.
except json.decoder.JSONDecodeError as e:
raise ValueError("obj is not a valid JSON string") from e
else:
try:
obj = json.dumps(obj) # All good, a JSON serializable object.
except TypeError as e:
raise ValueError("obj is not JSON serializable") from e
15 changes: 11 additions & 4 deletions synapsepy/user.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@

from .helpers import json_serialize
from .endpoints import paths

from .node import Node, Nodes
Expand Down Expand Up @@ -704,7 +705,7 @@ def get_all_nodes(self, page=None, per_page=None, type=None):
)
return Nodes(response)

def get_all_node_trans(self, node_id, page=None, per_page=None):
def get_all_node_trans(self, node_id, page=None, per_page=None, filter=filter):
'''Retrieves all Transactions for a Node
Args:
node_id (str): ID of the Node
Expand All @@ -714,6 +715,9 @@ def get_all_node_trans(self, node_id, page=None, per_page=None):
Transactions: Transactions object containing paginated info and Trans records
'''
self.logger.debug("Retrieving all Transactions for Node")

filter = json_serialize(filter)

path = (
paths['users']
+ '/'
Expand All @@ -724,11 +728,11 @@ def get_all_node_trans(self, node_id, page=None, per_page=None):
+ paths['trans']
)
response = self._do_request(
self.http.get,path, page=page, per_page=per_page
self.http.get,path, page=page, per_page=per_page, filter=filter,
)
return Transactions(response)

def get_all_trans(self, page=None, per_page=None):
def get_all_trans(self, page=None, per_page=None, filter=filter):
'''Retrieves all Transactions for a User
Args:
page (int): (opt) Page number
Expand All @@ -737,9 +741,12 @@ def get_all_trans(self, page=None, per_page=None):
Transactions: Transactions object containing paginated info and Trans records
'''
self.logger.debug("Retrieving all Transactions for User")

filter = json_serialize(filter)

path = paths['users'] + '/' + self.id + paths['trans']
response = self._do_request(
self.http.get, path, page=page, per_page=per_page
self.http.get, path, page=page, per_page=per_page, filter=filter
)
return Transactions(response)

Expand Down