You are here

function _user_relationship_service_definition in User Relationships 7

1 call to _user_relationship_service_definition()
user_relationship_service_services_resources in user_relationship_service/user_relationship_service.module
Implementation of hook_services_resources().

File

user_relationship_service/user_relationship_service.module, line 65
@author Drupal 7 and Services 3.x port by Ed Zenisek <http://drupal.org/user/2410988> @author Adapted to Services 3.x by MD3 http://drupal.org/user/1714848 @author Drupal 6 port by Darren Ferguson <http://drupal.org/user/70179> @author…

Code

function _user_relationship_service_definition() {

  // [POST] {endpoint}/user/{uid}/relationship/{type}
  $resources['user']['targeted_actions']['relationship'] = array(
    'help' => t('Requests a relationship with another user'),
    'callback' => 'user_relationship_service_request',
    'file' => array(
      'file' => 'inc',
      'module' => 'user_relationship_service',
    ),
    'access callback' => 'user_relationships_user_access',
    'access arguments' => array(
      'can have @relationship relationships',
    ),
    'access arguments append' => FALSE,
    'args' => array(
      array(
        'name' => 'uid',
        'type' => 'int',
        'description' => 'UID to request a relationship with',
        'source' => array(
          'path' => '0',
        ),
        'optional' => FALSE,
      ),
      array(
        'name' => 'type',
        'type' => 'string',
        'description' => t('Name of relationship type to create'),
        'source' => array(
          'path' => '2',
        ),
        'optional' => FALSE,
      ),
    ),
  );

  // [GET] {endpoint}/user/{uid}/relationships/ (optional) ?page=0&pagesize=20
  $resources['user']['relationships']['relationships'] = array(
    'help' => t('Get a list of my relationships'),
    'callback' => 'user_relationship_service_mine',
    'file' => array(
      'file' => 'inc',
      'module' => 'user_relationship_service',
    ),
    'access callback' => 'user_relationships_user_access',
    'access arguments' => array(
      'view own @relationship relationships',
    ),
    'access arguments append' => FALSE,
    'args' => array(
      // The UID passed here is irrelevant because the callback uses the
      // currently logged in user.  If we don't have this though, it fails.
      array(
        'name' => 'uid',
        'type' => 'int',
        'description' => 'UID to get a list of relationships from',
        'source' => array(
          'path' => '0',
        ),
        'optional' => FALSE,
      ),
      // This is left here for future purposes of being able to only show
      // 20 relationships at a time, etc.
      array(
        'name' => 'page',
        'optional' => TRUE,
        'type' => 'int',
        'description' => t('The zero-based index of the page to get, defaults to 0.'),
        'default value' => 0,
        'source' => array(
          'param' => 'page',
        ),
      ),
      array(
        'name' => 'pagesize',
        'optional' => TRUE,
        'type' => 'init',
        'description' => t('Number of records to get per page.'),
        'default value' => variable_get('services_user_index_page_size', 20),
        'source' => array(
          'param' => 'pagesize',
        ),
      ),
    ),
  );

  // [GET] {endpoint}/user/{uid}/relationshipsuser/ (optional) ?page=0&pagesize=20
  $resources['user']['relationships']['relationshipsuser'] = array(
    'help' => t('Get a list of relationships for a user'),
    'callback' => 'user_relationship_service_user',
    'file' => array(
      'file' => 'inc',
      'module' => 'user_relationship_service',
    ),
    'access callback' => 'user_relationships_user_access',
    'access arguments' => array(
      'view all @relationship relationships',
    ),
    'access arguments append' => FALSE,
    'args' => array(
      array(
        'name' => 'uid',
        'type' => 'int',
        'description' => 'UID to get a list of relationships from',
        'source' => array(
          'path' => '0',
        ),
        'optional' => FALSE,
      ),
      // This is left here for future purposes of being able to only show
      // 20 relationships at a time, etc.
      array(
        'name' => 'page',
        'optional' => TRUE,
        'type' => 'int',
        'description' => t('The zero-based index of the page to get, defaults to 0.'),
        'default value' => 0,
        'source' => array(
          'param' => 'page',
        ),
      ),
      array(
        'name' => 'pagesize',
        'optional' => TRUE,
        'type' => 'init',
        'description' => t('Number of records to get per page.'),
        'default value' => variable_get('services_user_index_page_size', 20),
        'source' => array(
          'param' => 'pagesize',
        ),
      ),
    ),
  );

  // [GET] {endpoint}/relationships (optional) ?page=0&pagesize=20
  $resources['relationships']['index'] = array(
    'help' => t('Get a list of relationship types'),
    'callback' => 'user_relationship_service_types',
    'file' => array(
      'file' => 'inc',
      'module' => 'user_relationship_service',
    ),
    'access callback' => 'user_relationships_user_access',
    'access arguments' => array(
      'can have @relationship relationships',
    ),
    'access arguments append' => FALSE,
    'args' => array(
      // This is left here for future purposes of being able to only show
      // 20 relationship types at a time, etc.
      array(
        'name' => 'page',
        'optional' => TRUE,
        'type' => 'int',
        'description' => t('The zero-based index of the page to get, defaults to 0.'),
        'default value' => 0,
        'source' => array(
          'param' => 'page',
        ),
      ),
      array(
        'name' => 'pagesize',
        'optional' => TRUE,
        'type' => 'init',
        'description' => t('Number of records to get per page.'),
        'default value' => variable_get('services_user_index_page_size', 20),
        'source' => array(
          'param' => 'pagesize',
        ),
      ),
    ),
  );

  // [POST] {endpoint}/relationships/approve
  $resources['relationships']['actions']['approve'] = array(
    'help' => t('Approve a requested relationship'),
    'callback' => 'user_relationship_service_approve',
    'file' => array(
      'file' => 'inc',
      'module' => 'user_relationship_service',
    ),
    'access callback' => 'user_relationships_user_access',
    'access arguments' => array(
      'can have @relationship relationships',
    ),
    'access arguments append' => FALSE,
    'args' => array(
      array(
        'name' => 'data',
        'type' => 'array',
        'description' => t('Relationship ID to approve'),
        'source' => 'data',
        'optional' => FALSE,
      ),
    ),
  );

  // [POST] {endpoint}/relationships/delete
  $resources['relationships']['actions']['delete'] = array(
    'help' => t('Delete an existing or pending relationship'),
    'callback' => 'user_relationship_service_delete',
    'file' => array(
      'file' => 'inc',
      'module' => 'user_relationship_service',
    ),
    'access callback' => 'user_relationships_user_access',
    'access arguments' => array(
      'delete @relationship relationships',
    ),
    'access arguments append' => FALSE,
    'args' => array(
      array(
        'name' => 'data',
        'type' => 'array',
        'description' => t('Reason for deletion (cancel, disapprove, remove)'),
        'source' => 'data',
        'optional' => FALSE,
      ),
    ),
  );
  return $resources;
}