Standalone client used to access Open edX REST APIs.
Project description
The REST API client for Open edX REST API allows users to communicate with various edX REST APIs. It is based on https://github.com/edx/edx-rest-api-client, whith a few differences:
It does not depend on Django
What is called ‘the client’ in edX’s version is now called ‘session’.
As the edX’s version relies on Django’s cache, now the token is stored in memory under the scope of the session object
The client here encompasses the session, and one function per REST API entry point
Part of the code is also taken from Opencraft’s implementation of the openedx client.
Testing
$ make validate
Usage
The OpenedxRESTAPIClient object starts a session with the LMS and provides methods to access the Open edX endpoints.
# create client
client = OpenedxRESTAPIClient('https://lms.example.com', 'client_id', 'client_secret')
# get a list of all courses
courses = client.list_all_courses()
Function Reference
list_all_courses
Get the full list of courses visible to the requesting user. Calls the /api/courses/v1/courses LMS endpoint
Args:
org: filter by organization
Returns:
List of dict in the form:
[
{
"blocks_url": "https://lms.example.com/api/courses/v1/blocks/?course_id=course-v1%3A<org>%2B<code>%2B<edition>",
"effort":"01:00",
"end":"None",
"enrollment_start":"None",
"enrollment_end":"None",
"id":"course-v1:<org>+<code>+<run>",
"media":{
"course_image":{
"uri":"<img path>"
},
"course_video":{
"uri":"None"
},
"image":{
"raw":"<img url>",
"small":"<img url>",
"large":"<img url>"
}
},
"name":"Course name",
"number":"<edition>",
"org":"<org>",
"short_description":"",
"start":"2018-01-11T00:00:00Z",
"start_display":"11 de Enero de 2018",
"start_type":"timestamp",
"pacing":"instructor",
"mobile_available":true,
"hidden":false,
"invitation_only":false,
"course_id":"course-v1:<org>+<code>+<edition>"
},
...
]
change_enrollment
Enroll or unenroll (depending on the value of action) the list of emails in the list of courses. Calls the /api/bulk_enroll/v1/bulk_enroll/ LMS endpoint
Args:
emails: list of emails to enroll
courses: list of course ids to enroll
action: can be ‘enroll’ or ‘unenroll’
url: url of the LMS (base or site). If not specified, uses the base url of the session. Defaults to the LMS base.
auto_enroll: if true, the users will be automatically enrolled as soon as they register. Defaults to true.
email_students: if true, an email will be sent with the update. Defaults to true.
cohorts: List of cohort names to add the students to.
Returns:
dict in the form:
{
"action":"enroll",
"courses":{
"course-v1:ORG+CODE+EDITION":{
"action":"enroll",
"results":[
{
"identifier":"mail@example.com",
"after":{
"enrollment":true,
"allowed":false,
"user":true,
"auto_enroll":false
},
"before":{
"enrollment":false,
"allowed":false,
"user":true,
"auto_enroll":false
}
},
...
],
"auto_enroll":true
},
...
},
"email_students":true,
"auto_enroll":true
}
How to Contribute
To contribute, please send a message to andres@aulasneo.com
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
Built Distribution
File details
Details for the file openedx-rest-api-client-0.0.3.tar.gz
.
File metadata
- Download URL: openedx-rest-api-client-0.0.3.tar.gz
- Upload date:
- Size: 15.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f7e1e0be26f5ea6c55a6b5389cbfd27ecdb603a119d3c5fa6d5d0e1a0d1df75c |
|
MD5 | 5f6f2f2c14fb4153622df82550d2755e |
|
BLAKE2b-256 | 8c53e9cfe0bdd346ea48a97f52df49cb874333f010da16648db52a212dc7c6f0 |
File details
Details for the file openedx_rest_api_client-0.0.3-py3-none-any.whl
.
File metadata
- Download URL: openedx_rest_api_client-0.0.3-py3-none-any.whl
- Upload date:
- Size: 16.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a1e4ee9ba12cfe48d1ae93ca306f11bea1ac676cd685e662b06dd41a615a1c24 |
|
MD5 | b27a673003e4c1dcafb00e53106fed66 |
|
BLAKE2b-256 | 085cb63fd57f36448f06c1352946bc0a11b41abf812739fda3f5150c6c99c163 |