You are here

function salesforce_api_demo in Salesforce Suite 5.2

Same name and namespace in other branches
  1. 6.2 salesforce_api/salesforce_api.admin.inc \salesforce_api_demo()
  2. 7 salesforce_api/salesforce_api.admin.inc \salesforce_api_demo()
  3. 7.2 salesforce_api/salesforce_api.admin.inc \salesforce_api_demo()

Demonstrates some of the API functionality through the Salesforce class and fieldmap functionality.

Parameters

$demo: The name of the demonstration to perform.

Return value

A string containing the page output.

1 string reference to 'salesforce_api_demo'
salesforce_api_menu in salesforce_api/salesforce_api.module
Implementation of hook_menu().

File

salesforce_api/salesforce_api.module, line 250
Defines an API that enables modules to interact with the Salesforce server.

Code

function salesforce_api_demo($demo = NULL) {

  // Attempt to connect to Salesforce.
  $sf = salesforce_api_connect();

  // Display an error message if the connection failed.
  if (!$sf) {
    return t('Could not connect to Salesforce. Please doublecheck your API credentials.');
  }

  // Display the server timestamp first.
  $response = $sf->client
    ->getServerTimestamp();
  $output = '<p>' . t('<b>Salesforce server timestamp:</b> @timestamp', array(
    '@timestamp' => $response->timestamp,
  )) . '</p>';

  // Add a specific demo's output.
  if ($demo == 'user-export') {
    global $user;

    // Fully load the user account so we get profile data.
    $account = user_load(array(
      'uid' => $user->uid,
    ));

    // Create an object for export based on fieldmap 1.
    $object = salesforce_api_fieldmap_export_create(1, $account);
    $output .= t('Your user account prepared for export as a Contact based on <a href="!url">fieldmap 1</a>:', array(
      '!url' => url(SALESFORCE_PATH_FIELDMAPS . '/1/edit'),
    )) . '<pre>' . print_r($object, TRUE) . '</pre>';

    // Export the object to Salesforce as a Contact.
    $response = $sf->client
      ->create(array(
      $object,
    ), 'Contact');
    $output .= t('The response from Salesforce upon creation:') . '<pre>' . print_r($response, TRUE) . '</pre>';
  }
  elseif ($demo == 'campaign-export') {

    // Load the campaign node.
    $node = node_load(1);

    // Create an object for export based on fieldmap 10.
    $object = salesforce_api_fieldmap_export_create(10, $node);
    $output .= t('Your campaign prepared for export as a Campaign based on <a href="!url">fieldmap 10</a>:', array(
      '!url' => url(SALESFORCE_PATH_FIELDMAPS . '/10/edit'),
    )) . '<pre>' . print_r($object, TRUE) . '</pre>';

    // Export the object to Salesforce as a Contact.
    $response = $sf->client
      ->create(array(
      $object,
    ), 'Campaign');
    $output .= t('The response from Salesforce upon creation:') . '<pre>' . print_r($response, TRUE) . '</pre>';
  }
  $items = array(
    l(t('Export your user account as a contact'), SALESFORCE_PATH_DEMO . '/user-export'),
    l(t('Export node 1 as a campaign'), SALESFORCE_PATH_DEMO . '/campaign-export'),
  );
  $output .= '<p>' . t('<b>Choose from the following demonstrations:</b>') . theme('item_list', $items) . '</p>';
  return $output;
}