/
Enrolling a user via web service

Enrolling a user via web service

There are multiple ways of sending enrollments via web service. The basic call is the most common, however, enrollment questions are also supported.

Creating an enrollment via web service

When enrolling a user via a web service call, we first want to verify if the user is enrolled in the course. After confirming they do not have an enrollment, we can send a request to create a new enrollment record.

In this example, the course node id (nid) we want to enroll the user in is 300 and the Drupal user ID (uid) is 200.

<?php // Verify if the user is enrolled in the course $curl = curl_init("http://your-domain.com/course_enrollment.json?uid=200&nid=300"); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET'); curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-Type: application/json")); curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($curl, CURLOPT_USERPWD, "restws_webservice:webservice_password"); //Your credentials go here curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); $json = curl_exec($curl); $response = json_decode($json); $list = $response->list; // See note below if(empty($list)){ $data = array( 'nid' => 300, 'uid' => 200, 'enrollmenttype' => 'webservice_call', // This is used to identify the source of the enrollment. Only use letters, numbers, and underscores. 'type' => 'course_enrollment', // This is the key of the enrollment question set. Only use letters, numbers, and underscores. 'status' => 1, ); // Send the enrollment creation request $curl = curl_init("http://your-domain.com/course_enrollment"); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-Type: application/json")); curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($curl, CURLOPT_USERPWD, "restws_webservice:webservice_password"); //Your credentials go here curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data)); $response = curl_exec($curl);

A successful creation request will return an array of values containing the "URI" of the new enrollment record, as well as it's enrollment "id".

{"uri":"http://your-domain.com/course_enrollment/458","id":"458","resource":"course_enrollment"}

For an explanation of the information returned from the verification request, see Web Service Responses.

Creating/Updating an enrollment containing questions

Enrollment questions can be updated during an enrollment web service call. However, only questions which are set to Show this field on enrollment, are supported via the web service.

You may set the enrollment bundle by updating the type attribute in the payload, to the machine name of the enrollment question bundle used in the course. The default bundle is course_enrollment, however, custom enrollment question bundles are supported.

The data example below updates a custom set titled "Marketing Questions", which contains a text field, and has a machine name of marketing_questions.

$data = array( 'nid' => 300, 'uid' => 200, 'enrollmenttype' => 'webservice_call', // This is used to identify the source of the enrollment. Only use letters, numbers, and underscores. 'type' => 'marketing_questions', // This is the key of the enrollment question set. Only use letters, numbers, and underscores. 'status' => 1, 'field_textbox'=> 'ETHOSCE123', );



Related content

Awarding credit via web services
Awarding credit via web services
More like this
Enrollment Questions
Enrollment Questions
Read with this
Queuing user enrollments via the course record import feature
Queuing user enrollments via the course record import feature
More like this
Retrieving Enrollments, Credits & Completions
Retrieving Enrollments, Credits & Completions
Read with this
Finding a course by external ID via web service
Finding a course by external ID via web service
More like this
Web Service Responses
Web Service Responses
Read with this