Skip to main content

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!")


```


Project details


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)

Uploaded Source

Built Distribution

openlrw-1.0.2rc0-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

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

Hashes for openlrw-1.0.2rc0.tar.gz
Algorithm Hash digest
SHA256 a5a1dadcb43632136cd4d0e49ba5a414eb9a5c6f7f1858b47118d7dd262d4098
MD5 88c9ba804af09fc206b1fb3e6698e387
BLAKE2b-256 fc552c3726d3c46441f3bbd4d307358f67cd06f0a86aea11bc231d9d9dd9653e

See more details on using hashes here.

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

Hashes for openlrw-1.0.2rc0-py3-none-any.whl
Algorithm Hash digest
SHA256 5d976d7beda8ba5daaa8eefc18da2911830e563145dc945a90825de73c999cdb
MD5 e76508cafee068cde71fbd3b8bdf97bd
BLAKE2b-256 65af40f2f7c207846de40fd02a4a1ea991ff8850dcfc4083e9627d4484196ea3

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page