Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagephp
titleCreating a course
linenumberstrue
<?php
$domain = 'your-domain.com';
$userpass = 'restws_webservice:restws_webservice';
$curl = curl_init('http://' . $domain . '/restws/session/token');
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_USERPWD, $userpass); // Your web service user credentials goes here.
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
$token = curl_exec($curl);
// The token looks like "q71OBx05wtECfjA0KmXf6wiktewrywNhkMZv-OcfyOA%"
print_r($token);
// Build a course to send, in JSON. The fields and allowed values are available on the full documentation site.
$course = array(
  'title' => 'My Course',   // A single line textbox
  'type' => 'course',
  'field_course_summary' => array(   // A multi-line text area field
    'value' => 'A <b>summary</b> of the course',
    'format' => 'full_html'
  ),
  'author' => 1,   // It is best practice is to assign the Web Service user id as author
  'status' => 1,   //  Status (published): A single select checkbox. Either 1 or 0
  'field_course_date' => array(
    'value' => '2017-08-20T13:00:00',
    'value2' => '2018-08-20T21:00:00',
  ),
  'field_course_event_date' => array(
    'value' => '2018-08-20T13:00:00',
    'value2' => '2018-08-20T21:00:00',
  ),
  'sell_price' => 100.00,
  'model' => 'DLC_1234',
  'field_learning_objectives' => array(
    'value' => '<p>Objectives for learning.</p>',
    'format' => 'full_html'
  ),
  'field_hotel_travel' => array(
    'value' => '<p>Attendees will have a block of rooms available at <b>The Double Tree</b></p>',
    'format' => 'full_html'
  ),
  'field_hotel_information' => array(
    'value' => '<p>Please call the front desk for rates.</p>',
    'format' => 'full_html'
  ),
  "field_hotel_link" => array(
    "title" => "Venue Website",
    "url" => "doubletree3.hilton.com",
  ),
  'field_venue_phone' => array(
    'number' => '2158931600',
    'country_code' => 'us' // Link to list
  ),
  "field_course_location" => array(
    "name" => "Double Tree Philadelphia",
    "street" => "237 S Broad Street",
    "additional" => "",
    "city" => "Philadelphia",
    "province" => "PA",
    "postal_code" => "19107",
    "country" => "us",
  ),
  "field_course_live" => 1,   // The 'Live' checkbox, under Course settings must be checked for live events
  "field_course_category" => array(   // Course Category is field containing a list of taxonomy terms. The id values entered here are the integer term ids
    array('id' => 50),
    array('id' => 60),
  ),
  "field_course_format" => array(
    array('id' => 10),
    array('id' => 20),
  ),
);
$json = json_encode($course);
$curl = curl_init('http://' . $domain . '/node.json');
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_USERPWD, $userpass); //Your credentials go here
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_POSTFIELDS, $json);
curl_setopt($curl, CURLOPT_HTTPHEADER, array("X-CSRF-Token: $token", "Content-Type: application/json"));
// Send the course creation request
$http_return = curl_exec($curl);
$response = json_decode($http_return);
print_r($response);
/*
 An example response, returned in JSON:
(
    [uri] => http://your-domain.com/node/408
    [id] => 408
    [resource] => node
    [uuid] => f88adca4-8332-459c-873f-1bad3724b13e
)
*/
// Get the nid to send credit information
$nid = $response->id;
// Add Credit
$curl = curl_init('http://' . $domain . '/course_credit.json');
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_USERPWD, $userpass); //Your credentials go here
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_HTTPHEADER, array("X-CSRF-Token: $token", "Content-Type: application/json"));

// Enable Attendance
$credit_attendance = array(
  'nid' => $nid,
  'active' => 1,
  'type' => 'attendance',
  "increments" => 0,
  "min" => 0,
  "max" => 1,
  "enable_variable_credit" => 0,
);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($credit_attendance));
$http_return = curl_exec($curl);
$response = json_decode($http_return);
print_r($response);

// Enable AMA
$credit_ama = array(
  'nid' => $nid,
  'active' => 1,
  'type' => 'ama',
  "increments" => 0.25,
  "min" => 1.,
  "max" => 5.5,
  "enable_variable_credit" => 1,
);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($credit_ama));
$http_return = curl_exec($curl);
$response = json_decode($http_return);
print_r($response);

...