Client library for Apereo OpenLRW API
Project description
# OpenLRW Python API Client
> A Python Client making your scripts for OpenLRW easier
<p align="center">
<a href='https://www.python.org/dev/peps/pep-0008/'><img src="https://img.shields.io/badge/code%20style-pep8-orange.svg" alt="code style pep 8"></a>
<a href="https://badge.fury.io/py/openlrw"><img src="https://badge.fury.io/py/openlrw.svg" alt="PyPI version"></a>
</p>
## Getting Started
` pip install openlrw `
## Usage
#### Some examples of what you can do
```python
from openlrw.client import OpenLRW
from openlrw.exceptions import ExpiredTokenException
# 1. Settings
openlrw = OpenLRW(uri, username, password) # Create an instance of the client
openlrw.setup_email('localhost', 'script@openlrw.dev', 'your_email@domain.com') # Allows you to send emails
# 2. Authentication
jwt = openlrw.generate_jwt() # Generate a JSON Web Token for using OneRoster routes
# 3. Users
try:
user = openlrw.get_user(user_id, jwt) # One user
users = openlrw.get_users(jwt) # All the users
new_user_res = openlrw.post_user(json, jwt, True) # Creates a user
patch_user_res = openlrw.patch_user(user_id, json, jwt)
delete_user_res = openlrw.delete_user(user_id, jwt)
except ExpiredTokenException:
OpenLRW.pretty_error("Error", "JWT Expired")
# 4. Line items
try:
line_item = openlrw.get_lineitem("lineItemId", jwt)
line_items = openlrw.get_lineitems(jwt)
openlrw.post_lineitem_for_a_class("classId", json, jwt, True)
openlrw.post_lineitem(json, jwt, True)
except ExpiredTokenException:
OpenLRW.pretty_error("Error", "JWT Expired")
except InternalServerErrorException as e:
script_name = str(sys.argv[0])
openlrw.mail_server(script_name + " error", str(e.message)) # Send an email with the details
exit()
except BadRequestException:
OpenLRW.pretty_error("Bad Request", "Lorem ipsum")
#5 Class
try:
openlrw.post_class(json, jwt, True)
except InternalServerErrorException as e:
script_name = str(sys.argv[0])
openlrw.mail_server(script_name + " error", str(e.message)) # Send an email with the details
exit()
except BadRequestException:
OpenLRW.pretty_error("Bad Request", "Lorem ipsum")
# 6. Result
try:
result = openlrw.post_result_for_a_class("classId", json, jwt, True)
except ExpiredTokenException:
OpenLRW.pretty_error("Error", "JWT Expired")
except InternalServerErrorException as e:
script_name = str(sys.argv[0])
openlrw.mail_server(script_name + " error", str(e.message)) # Send an email with the details
exit()
except BadRequestException:
OpenLRW.pretty_error("Bad Request", "Lorem ipsum")
# 7. Send a Caliper statement
try:
response_code = openlrw.send_caliper(statement)
except BadRequestException as e:
print(str(e.message))
OpenLRW.pretty_error("Bad Request", "An error happened.")
except InternalServerErrorException as e:
print(str(e.message))
OpenLRW.pretty_error("Internal Server Error", "An error happened.")
OpenLRW.pretty_message("Script finished", "Ask the features you want in the pull requests!")
```
> A Python Client making your scripts for OpenLRW easier
<p align="center">
<a href='https://www.python.org/dev/peps/pep-0008/'><img src="https://img.shields.io/badge/code%20style-pep8-orange.svg" alt="code style pep 8"></a>
<a href="https://badge.fury.io/py/openlrw"><img src="https://badge.fury.io/py/openlrw.svg" alt="PyPI version"></a>
</p>
## Getting Started
` pip install openlrw `
## Usage
#### Some examples of what you can do
```python
from openlrw.client import OpenLRW
from openlrw.exceptions import ExpiredTokenException
# 1. Settings
openlrw = OpenLRW(uri, username, password) # Create an instance of the client
openlrw.setup_email('localhost', 'script@openlrw.dev', 'your_email@domain.com') # Allows you to send emails
# 2. Authentication
jwt = openlrw.generate_jwt() # Generate a JSON Web Token for using OneRoster routes
# 3. Users
try:
user = openlrw.get_user(user_id, jwt) # One user
users = openlrw.get_users(jwt) # All the users
new_user_res = openlrw.post_user(json, jwt, True) # Creates a user
patch_user_res = openlrw.patch_user(user_id, json, jwt)
delete_user_res = openlrw.delete_user(user_id, jwt)
except ExpiredTokenException:
OpenLRW.pretty_error("Error", "JWT Expired")
# 4. Line items
try:
line_item = openlrw.get_lineitem("lineItemId", jwt)
line_items = openlrw.get_lineitems(jwt)
openlrw.post_lineitem_for_a_class("classId", json, jwt, True)
openlrw.post_lineitem(json, jwt, True)
except ExpiredTokenException:
OpenLRW.pretty_error("Error", "JWT Expired")
except InternalServerErrorException as e:
script_name = str(sys.argv[0])
openlrw.mail_server(script_name + " error", str(e.message)) # Send an email with the details
exit()
except BadRequestException:
OpenLRW.pretty_error("Bad Request", "Lorem ipsum")
#5 Class
try:
openlrw.post_class(json, jwt, True)
except InternalServerErrorException as e:
script_name = str(sys.argv[0])
openlrw.mail_server(script_name + " error", str(e.message)) # Send an email with the details
exit()
except BadRequestException:
OpenLRW.pretty_error("Bad Request", "Lorem ipsum")
# 6. Result
try:
result = openlrw.post_result_for_a_class("classId", json, jwt, True)
except ExpiredTokenException:
OpenLRW.pretty_error("Error", "JWT Expired")
except InternalServerErrorException as e:
script_name = str(sys.argv[0])
openlrw.mail_server(script_name + " error", str(e.message)) # Send an email with the details
exit()
except BadRequestException:
OpenLRW.pretty_error("Bad Request", "Lorem ipsum")
# 7. Send a Caliper statement
try:
response_code = openlrw.send_caliper(statement)
except BadRequestException as e:
print(str(e.message))
OpenLRW.pretty_error("Bad Request", "An error happened.")
except InternalServerErrorException as e:
print(str(e.message))
OpenLRW.pretty_error("Internal Server Error", "An error happened.")
OpenLRW.pretty_message("Script finished", "Ask the features you want in the pull requests!")
```
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
openlrw-1.0.2rc0.tar.gz
(6.2 kB
view details)
Built Distribution
File details
Details for the file openlrw-1.0.2rc0.tar.gz
.
File metadata
- Download URL: openlrw-1.0.2rc0.tar.gz
- Upload date:
- Size: 6.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a5a1dadcb43632136cd4d0e49ba5a414eb9a5c6f7f1858b47118d7dd262d4098 |
|
MD5 | 88c9ba804af09fc206b1fb3e6698e387 |
|
BLAKE2b-256 | fc552c3726d3c46441f3bbd4d307358f67cd06f0a86aea11bc231d9d9dd9653e |
File details
Details for the file openlrw-1.0.2rc0-py3-none-any.whl
.
File metadata
- Download URL: openlrw-1.0.2rc0-py3-none-any.whl
- Upload date:
- Size: 12.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5d976d7beda8ba5daaa8eefc18da2911830e563145dc945a90825de73c999cdb |
|
MD5 | e76508cafee068cde71fbd3b8bdf97bd |
|
BLAKE2b-256 | 65af40f2f7c207846de40fd02a4a1ea991ff8850dcfc4083e9627d4484196ea3 |