...
Code Block | ||
---|---|---|
| ||
<?php $domain = 'your-domain.com'; $userpass = 'restws_webservice:restws_password'; // Login to the site and request the access token $curl = curl_init("http://$domainyour-domain.com/restws/session/token"); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET'); curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($curl, CURLOPT_USERPWD, $userpass'restws_webservice:restws_password'); // Your web service user credentials goes here. curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); $token = curl_exec($curl); // The token looks like "q71OBx05wtECfjA0KmXf6wiktewrywNhkMZv-OcfyOA%" // #1 Verify the user does not exist by sending a GET request to the system, searching by user 'mail' attribute $curl = curl_init("http://$domainyour-domain.com/user.json?mail=newuser@dlc-solutions.com"); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET'); curl_setopt($curl, CURLOPT_HTTPHEADER, array("X-CSRF-Token: $token", "Content-Type: application/json")); curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($curl, CURLOPT_USERPWD, $userpass'restws_webservice:restws_password'); //Your credentials goes here curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); $json = curl_exec($curl); $response = json_decode($json); print "\nUser search "; // A list of users matching criteria will be returned. If this list is empty, a user does not exist in EthosCE with the given e-mail address. $list = $response->list; // #2 Send the user creation request, via POST if (empty($list)) { $user = array( 'name' => 'newuser_username', // Username 'mail' => 'newuser@ethosce.com', 'status' => 1, // Enabled. A value of 0 sets the account as 'Blocked' ); $curl = curl_init("http://$domainyour-domain.com/user"); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($curl, CURLOPT_HTTPHEADER, array("X-CSRF-Token: $token", "Content-Type: application/json")); curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($curl, CURLOPT_USERPWD, $userpass'restws_webservice:restws_password'); //Your credentials goes here curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($user)); $json = curl_exec($curl); print_r("$json \n"); // An array detailing the new user entity is returned if successful $userInfo = json_decode($json); print "\nCreated user $userInfo->id http://$domain/user/$userInfo->id"; // Prepare the profile creation calls $curl = curl_init("http://$domainyour-domain.com/profile2"); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($curl, CURLOPT_HTTPHEADER, array("X-CSRF-Token: $token", "Content-Type: application/json")); curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($curl, CURLOPT_USERPWD, $userpass'restws_webservice:restws_password'); //Your credentials goes here curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); // User profile data $profile = array( 'user' => $userInfo->id, // The value sent back is a user entity, which identifies itself by entity id, which is also the Drupal uid 'label' => 'Profile', 'type' => 'profile', 'field_first_name' => 'John', 'field_middle_name' => 'Middle', 'field_last_name' => 'Smith', 'field_profile_location' => array( 'street' => '1520 Locust Street', 'additional' => 'Suite 1000', 'city' => 'Philadelphia', 'province' => 'PA', 'postal_code' => '19102', 'country' => 'us', // A two character country code ), ); // Create the main profile curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($profile)); $json = curl_exec($curl); print_r("$json \n"); $response = json_decode($json); print "\nCreated profile $response->id"; // User Bio data $bio = array( 'user' => $userInfo->id, 'label' => 'Bio', 'type' => 'bio', 'field_fm_biography' => array( 'value' => 'This is the learner <b>bio</b>",', 'format' => 'filtered_html', // Text format is required. Filtered HTML is availabe to all learners ), 'field_credentials' => 'PhD, MD', ); // Create the bio curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($bio)); $json = curl_exec($curl); $response = json_decode($json); print "\nCreated bio $response->id. "; // User disclosure data $disclosure = array( 'user' => $userInfo->id, 'label' => 'Disclosure', 'type' => 'disclosure', 'field_fm_disclose' => 1, ); // Create the disclosure curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($disclosure)); $json = curl_exec($curl); $disclosure_new = json_decode($json); print "\nCreated disc $disclosure_new->id. "; // Add financial relationships field collections to the disclosure $financial_info = array( // Field 1 array( 'field_fm_attribution' => 'Other', 'field_fm_commercial_interest' => 'Pharma Clinic', 'field_fm_dates' => array( 'value' => date('Y-m-d\TH:i:s', 1408492800), "2014-08-20T00:00:00Z",// Dates must be sent in this ISO format, Y-m-d\TH:i:ssZ, to be properly read from the database 'value2' => date('Y-m-d\TH:i:s', 1409184000)"2014-08-28T00:00:00Z", ), 'field_fm_relationship_type' => 'Other', 'field_fm_relationship_type_other' => 'I bought supplies which were reimbursed.', 'field_name' => 'field_fm_financial_relationships', 'host_entity' => array( 'id' => $disclosure_new->id, 'resource' => "profile2", ), ), // Field 2 array( 'field_fm_attribution' => 'Self', 'field_fm_commercial_interest' => 'Pharma Clinic', 'field_fm_dates' => array( 'value' => date('Y-m-d\TH:i:s', 1440028800)"2015-08-20T00:00:00Z", // Dates must be sent in this ISO format, Y-m-d\TH:i:ssZ, to be properly read from the database 'value2' => date('Y-m-d\TH:i:s', 1440720000)"2015-08-28T00:00:00Z", ), 'field_fm_relationship_type' => 'Employment', 'field_fm_relationship_type_other' => 'Paid sponsorship', 'field_name' => 'field_fm_financial_relationships', 'host_entity' => array( 'id' => $disclosure_new->id, 'resource' => "profile2", ), ), ); curl_setopt($curl, CURLOPT_URL, "http://$domainyour-domain.com/field_collection_item.json"); foreach ($financial_info as $item) { curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($item)); $json = curl_exec($curl); $response = json_decode($json); print "\nCreated financial relationship " . $json; } } |
...