Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 15 Next »

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', // enrollmenttype and type should be updated per client system. They are the unique identifiers of the external system sending the call. 
  'type' => 'webservice_call', // Formatted in lower case alphanumeric and underscore characters. The two values are not required to be identical.
  '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.
  • No labels