Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openedx-rest-api-client-0.0.3.tar.gz (15.0 kB view details)

Uploaded Source

Built Distribution

openedx_rest_api_client-0.0.3-py3-none-any.whl (16.2 kB view details)

Uploaded Python 3

File details

Details for the file openedx-rest-api-client-0.0.3.tar.gz.

File metadata

File hashes

Hashes for openedx-rest-api-client-0.0.3.tar.gz
Algorithm Hash digest
SHA256 f7e1e0be26f5ea6c55a6b5389cbfd27ecdb603a119d3c5fa6d5d0e1a0d1df75c
MD5 5f6f2f2c14fb4153622df82550d2755e
BLAKE2b-256 8c53e9cfe0bdd346ea48a97f52df49cb874333f010da16648db52a212dc7c6f0

See more details on using hashes here.

File details

Details for the file openedx_rest_api_client-0.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for openedx_rest_api_client-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a1e4ee9ba12cfe48d1ae93ca306f11bea1ac676cd685e662b06dd41a615a1c24
MD5 b27a673003e4c1dcafb00e53106fed66
BLAKE2b-256 085cb63fd57f36448f06c1352946bc0a11b41abf812739fda3f5150c6c99c163

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