You are here

userpoints_service.module in User Points 6

Same filename and directory in other branches
  1. 5.3 userpoints_service.module
  2. 7 userpoints_service.module

File

userpoints_service.module
View source
<?php

/**
 * Implementation of hook_help().
 */
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>');
  }
}

/**
 * Implementation of hook_service().
 */
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.'),
    ),
  );
}

/**
 * Get the number of points
 */
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;
}

/**
 * Logout user
 */
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;
}

Functions

Namesort descending Description
userpoints_service_get Get the number of points
userpoints_service_help Implementation of hook_help().
userpoints_service_points Logout user
userpoints_service_service Implementation of hook_service().