Provides Userpoints XML-RPC service. Requires services.module.

'); } } /** * 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' => $desc, '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; }