View source
<?php
function userpoints_service_help($section) {
switch ($section) {
case 'admin/help#services_userpoints':
case 'admin/modules#description':
return t('<p>Provides Userpoints XML-RPC service. Requires services.module.</p>');
}
}
function userpoints_service_service() {
return array(
array(
'#method' => 'userpoints.get',
'#callback' => 'userpoints_service_get',
'#args' => array(
array(
'#name' => 'uid',
'#type' => 'int',
'#description' => t('A valid Drupal User ID.'),
),
array(
'#name' => 'tid',
'#type' => 'int',
'#optional' => TRUE,
'#description' => t('An optional Term ID for the category.'),
),
),
'#return' => 'struct',
'#help' => t('Retrieves the number of points the user has.'),
),
array(
'#method' => 'userpoints.points',
'#callback' => 'userpoints_service_points',
'#args' => array(
array(
'#name' => 'uid',
'#type' => 'int',
'#description' => t('A valid Drupal User ID.'),
),
array(
'#name' => 'points',
'#type' => 'int',
'#description' => t('Number of points to add/subtract.'),
),
array(
'#name' => 'tid',
'#type' => 'int',
'#optional' => TRUE,
'#description' => t('An optional Term ID for the category.'),
),
array(
'#name' => 'event',
'#type' => 'string',
'#optional' => TRUE,
'#description' => t('An optional event ID for this transaction.'),
),
array(
'#name' => 'description',
'#type' => 'string',
'#optional' => TRUE,
'#description' => t('An optional description of this transaction.'),
),
),
'#return' => 'struct',
'#help' => t('Adds/subtracts points to a user.'),
),
);
}
function userpoints_service_get($uid, $tid = NULL) {
if (!$uid) {
return services_error(t('User ID parameter is required.'));
}
$points = userpoints_get_current_points($uid, $tid);
$return = new stdClass();
$return->points = $points;
return $return;
}
function userpoints_service_points($uid, $points, $tid = NULL, $event = 'userpoints service', $description = NULL) {
if (!$uid) {
return services_error(t('User ID parameter is required.'));
}
if (!$points) {
return services_error(t('Points parameter must be a negative or positive number.'));
}
$params = array(
'uid' => $uid,
'points' => $points,
'tid' => $tid,
'event' => $event,
'description' => $description,
'display' => FALSE,
'moderate' => FALSE,
);
$result = userpoints_userpointsapi($params);
$return = new stdClass();
if (!$result['status']) {
$return->reason = $result['reason'];
$return->status = FALSE;
}
else {
$return->status = TRUE;
}
return $return;
}