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.2rc2.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file openlrw-1.0.2rc2.tar.gz.

File metadata

  • Download URL: openlrw-1.0.2rc2.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.2rc2.tar.gz
Algorithm Hash digest
SHA256 ad572c0a5f694482f2d1931f2fd7bc7dd80ef329f60b6ae592d004ece52bf8bb
MD5 84e8152b74593695e6097394b405c48b
BLAKE2b-256 2fbb262b34cb32a81f486b727a235a48e6fd266710f3135572fbcc00fce7e376

See more details on using hashes here.

File details

Details for the file openlrw-1.0.2rc2-py3-none-any.whl.

File metadata

  • Download URL: openlrw-1.0.2rc2-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.2rc2-py3-none-any.whl
Algorithm Hash digest
SHA256 0265d337ce6ea3e1d113d75ee61a4c4bc203e03f975b42dcae9d15eeb20b4023
MD5 65ddd1cf98097e7b4591c7d7b34de347
BLAKE2b-256 149c5d0105deb50e4c0e3469d868c3b48b76c104627cf7887d7adf99b9eddb23

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