You are here

crm_core_activity_resource.inc in CRM Core 7

Resource definitions for services module.

File

modules/crm_core_activity/includes/crm_core_activity_resource.inc
View source
<?php

/**
 * @file
 * Resource definitions for services module.
 */

/**
 * Determine whether the current user can access a crm_core_activity resource.
 *
 * @param string $op
 *   Operation, access for which should be checked.
 * @param mixed $arg
 *   Activity ID or activity data array, in case $op is 'create'.
 *
 * @return bool
 *   Boolean.
 *
 * @see crm_core_activity_access()
 */
function _crm_core_activity_resource_access($op, $arg = NULL) {
  if (is_array($arg[0])) {
    $activity_data = array_shift($arg);
    return crm_core_activity_access($op, $activity_data['type']);
  }
  elseif (is_numeric($arg[0])) {
    $crm_core_activity = crm_core_activity_load($arg[0]);
    return crm_core_activity_access($op, $crm_core_activity);
  }
  elseif (!isset($arg)) {
    return user_access('administer crm_core_activity entities') || user_access('view any crm_core_activity entity');
  }
  return FALSE;
}

/**
 * Return an array of crm_core_activities.
 *
 * @param int $page
 *   Page number of results to return (in pages of 20).
 * @param int $page_size
 *   Integer number of items to be returned.
 *
 * @return array
 *   An array of node objects.
 */
function _crm_core_activity_resource_index($page, $page_size) {
  $aids = db_select('crm_core_activity', 'c')
    ->orderBy('created', 'DESC')
    ->fields('c', array(
    'activity_id',
  ))
    ->range($page * $page_size, $page_size)
    ->execute()
    ->fetchCol();
  $activities = crm_core_activity_load_multiple($aids);
  return services_resource_build_index_list($activities, 'crm_core_activity', 'activity_id');
}

/**
 * Callback for the 'create' method.
 */
function _crm_core_activity_resource_create($activity_data) {
  try {
    $activity = entity_create('crm_core_activity', $activity_data);
    unset($activity->is_new);
    crm_core_activity_save($activity);
    return $activity;
  } catch (Exception $exception) {
    watchdog_exception('crm_core_activity', $exception);
    return services_error($exception, 406, $activity_data);
  }
}

/**
 * Callback for the 'update' method.
 */
function _crm_core_activity_resource_update($activity_id, $activity_data) {
  return _crm_core_activity_resource_create($activity_data);
}

/**
 * Callback for the 'delete' method.
 */
function _crm_core_activity_resource_delete($activity_id) {
  return crm_core_activity_delete_multiple(array(
    $activity_id,
  ));
}

Functions

Namesort descending Description
_crm_core_activity_resource_access Determine whether the current user can access a crm_core_activity resource.
_crm_core_activity_resource_create Callback for the 'create' method.
_crm_core_activity_resource_delete Callback for the 'delete' method.
_crm_core_activity_resource_index Return an array of crm_core_activities.
_crm_core_activity_resource_update Callback for the 'update' method.