You are here

function lti_tool_provider_outcomes_get_set_resource in LTI Tool Provider 7

Retrieve the corresponding resource record, and create if it does not exist.

Parameters

int $consumer_id: Consumer Entity ID.

int $context_id: Context ID.

string $resource_link_id: Resource Link ID of the request.

string $resource_title: Resource Title of the request.

string $result_value_sourcedids: Result value source dids.

Return value

int ID of the new resource record.

2 calls to lti_tool_provider_outcomes_get_set_resource()
lti_tool_provider_outcomes_lti_tool_provider_create_account_alter in lti_tool_provider_outcomes/lti_tool_provider_outcomes.module
Implements hook_lti_tool_provider_create_account_alter().
lti_tool_provider_outcomes_lti_tool_provider_launch_alter in lti_tool_provider_outcomes/lti_tool_provider_outcomes.module
Implements hook_lti_tool_provider_launch_alter().

File

lti_tool_provider_outcomes/lti_tool_provider_outcomes.module, line 234

Code

function lti_tool_provider_outcomes_get_set_resource($consumer_id, $context_id, $resource_link_id, $resource_title, $result_value_sourcedids) {
  $results_arr = array();
  $query = new EntityFieldQuery();
  $query
    ->entityCondition('entity_type', 'lti_tool_provider_outcomes_resource')
    ->propertyCondition('lti_tool_provider_outcomes_resource_consumer_id', $consumer_id)
    ->propertyCondition('lti_tool_provider_outcomes_resource_context_id', $context_id)
    ->propertyCondition('lti_tool_provider_outcomes_resource_resource_link_id', $resource_link_id);
  $result = $query
    ->execute();
  if (count(lti_tool_provider_outcomes_datatype_array($result_value_sourcedids)) == 1) {
    $result_value_sourcedids = lti_tool_provider_outcomes_default_resultvalue_sourcedids();
  }
  if (isset($result['lti_tool_provider_outcomes_resource'])) {

    // Record exists.
    $resources = array_keys($result['lti_tool_provider_outcomes_resource']);
    return reset($resources);
  }
  else {
    $entity = new stdClass();
    $entity->lti_tool_provider_outcomes_resource_id = 0;
    $entity->lti_tool_provider_outcomes_resource_consumer_id = $consumer_id;
    $entity->lti_tool_provider_outcomes_resource_context_id = $context_id;
    $entity->lti_tool_provider_outcomes_resource_resource_link_title = $resource_title;
    $entity->lti_tool_provider_outcomes_resource_resource_link_id = $resource_link_id;
    $entity->lti_tool_provider_outcomes_resource_score_datatype_base_value = NULL;
    $entity->lti_tool_provider_outcomes_resource_resultvalue_sourcedids = $result_value_sourcedids;
    $entity = entity_get_controller('lti_tool_provider_outcomes_resource')
      ->save($entity);
    return $entity->lti_tool_provider_outcomes_resource_id;
  }
}