You are here

function salesforce_api_object_to_fieldmap_fields in Salesforce Suite 7

Same name and namespace in other branches
  1. 6.2 salesforce_api/salesforce_api.module \salesforce_api_object_to_fieldmap_fields()
  2. 7.2 salesforce_api/salesforce_api.module \salesforce_api_object_to_fieldmap_fields()

Convert Salesforce object fields to fieldmap array for saving

1 call to salesforce_api_object_to_fieldmap_fields()
salesforce_api_cache_build in salesforce_api/salesforce_api.module
Recreate the salesforce object cache

File

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

Code

function salesforce_api_object_to_fieldmap_fields($object) {
  $fieldmap_object = array(
    'label' => t($object->label),
    'fields' => array(),
  );
  foreach ($object->fields as $field) {
    $properties = array(
      'name',
      'label',
      'type',
      'length',
      'soapType',
    );
    $booleans = array(
      'createable',
      'defaultedOnCreate',
      'deprecatedAndHidden',
      'idLookup',
      'nillable',
      'restrictedPicklist',
      'unique',
      'updateable',
    );
    $source = get_object_vars($field);
    $sf_definition = array_intersect_key($source, array_flip($properties));
    $sf_definition['sf_type'] = 0;
    foreach ($booleans as $bool) {
      $sf_definition['sf_type'] |= (int) $source[$bool] * constant('SALESFORCE_FIELD_' . strtoupper($bool));
    }
    $fieldmap_object['fields'][$field->name] = array(
      'name' => $sf_definition['name'],
      'label' => $sf_definition['label'],
      'type' => $sf_definition['sf_type'],
      'salesforce' => $sf_definition,
    );
  }
  return $fieldmap_object;
}