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.1rc0.tar.gz
(6.2 kB
view hashes)
Built Distribution
openlrw-1.0.1rc0-py3-none-any.whl
(12.3 kB
view hashes)
Close
Hashes for openlrw-1.0.1rc0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b5078776f097ec9b22bc2d5f0aaf0a1dc883f95ab55f06b59b7175a8409a31a6 |
|
MD5 | a2407ea51f365367a4950af02b2492cc |
|
BLAKE2b-256 | f43e748d809a8679c2f7ef53ca120665fa510d95c4c2469feb3a83ba27306398 |