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;
}