You are here

function webform_service_submission_index in Webform Service 7.4

Same name and namespace in other branches
  1. 6.3 webform_service.module \webform_service_submission_index()

Retrieve all submissions for a webform.

1 string reference to 'webform_service_submission_index'
_webform_resource_definition in resources/webform_resource.inc
The webform resource definition.

File

./webform_service.module, line 334

Code

function webform_service_submission_index($uuid, $page, $page_size, $parameters) {
  global $user;
  if ($webform = webform_service_resource_load($uuid)) {

    // Establish the index by setting the default nid filter, and then using any
    // additional parameters when getting the submissions.
    $index = array();
    module_load_include('inc', 'webform', 'includes/webform.submissions');

    // Set appropriate parameters as filters to get submissions.
    $parameters['nid'] = $webform->nid;

    // First check if we have access to all
    if (user_access('access all webform results')) {

      // don't filter anything extra
    }
    else {
      if (user_access('access own webform submissions')) {
        $parameters['uid'] = $user->uid;
      }
      else {
        return services_error(t('User @userid does not have access to submissions', array(
          '@userid' => $user->uid,
        )), 401);
      }
    }

    // Get the submissions, then iterate over each and load it onto the index.
    $submissions = webform_get_submissions($parameters);
    foreach ($submissions as $submission) {
      $index[] = webform_service_get_submission($webform, $submission);
    }
    return $index;
  }
  else {
    return services_error(t('@uuid could not be found', array(
      '@uuid' => $uuid,
    )), 404);
  }
}