-
Notifications
You must be signed in to change notification settings - Fork 3
/
example.py
36 lines (24 loc) · 1.37 KB
/
example.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
import requests
# Querying which actions are available on resource 0 to user with ID 0
r_available = requests.get('http://localhost:8080/available/?resource=0&user=0')
# The result is a JSON object with a key for each action branch, and
# each branch consisting of an array of strings, each element being
# an action name available to that user
print(r_available.json())
# Assuming this is the same resource as added in ** Populating Redis in
# docs/integration.org, the result would be:
# >>> print(ra.json())
# {u'data': [u'no-access', u'view']}
# To perform an action, we use the /run-action endpoint, which takes
# a branch name and action name in addition to the resource and user.
# The result of the /available query tells us exactly which branches and
# actions we can perform
r_view = requests.get('http://localhost:8080/run-action/?resource=0&user=0&branch=data&action=view')
# In this case, the output of the 'view' action is a JSON array representation of the SQL output
print(r_view.json())
# Thus, each of the fields can be accessed as in any other array; for example
# we can retrieve the Phenotype.Pre_publication_description field:
print(r_view.json()[3])
r_na = requests.get('http://localhost:8080/run-action/?resource=0&user=0&branch=data&action=no-access')
# If the user doesn't have access, the string "no-action" is returned,
# as the no-access-action is used by default