A Python Client making your scripts for OpenLRW easier
pip install openlrw
Add this import before using the next examples
from openlrw.client import OpenLRW
from openlrw.exceptions import *
openlrw = OpenLRW(uri, username, password) # Create an instance of the client
openlrw.setup_email('localhost', 'script@openlrw.dev', 'your_email@domain.com') # Optional: Allows you to send emails
jwt = openlrw.generate_jwt()
There are two ways to call OneRoster routes: by using a generic call or use implemented methods
# GET
try:
classes = openlrw.http_auth_get('/api/classes', jwt)
except ExpiredTokenException:
print("Error: JWT Expired)
# POST
try:
openlrw.http_auth_post('/api/classes', data, jwt)
except ExpiredTokenException:
print("Error: JWT Expired)
except BadRequestException as e:
print("Error: " + str(e.message.content))
except InternalServerErrorException as e:
print("Error: " + str(e.message.content))
Get a user
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")
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")
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")
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")
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!")