public function WebformCompleteSubmissionResource::get in Webform REST 8.2
Same name and namespace in other branches
- 4.x src/Plugin/rest/resource/WebformCompleteSubmissionResource.php \Drupal\webform_rest\Plugin\rest\resource\WebformCompleteSubmissionResource::get()
Retrieve webform fields and submission data.
Parameters
string $webform_id: Webform ID.
int $sid: Submission ID.
Return value
\Drupal\rest\ModifiedResourceResponse HTTP response object containing webform submission.
Throws
\Symfony\Component\HttpKernel\Exception\HttpException Throws HttpException in case of error.
File
- src/
Plugin/ rest/ resource/ WebformCompleteSubmissionResource.php, line 36
Class
- WebformCompleteSubmissionResource
- Creates a resource for retrieving webform submission data and fields.
Namespace
Drupal\webform_rest\Plugin\rest\resourceCode
public function get($webform_id, $sid) {
if (empty($webform_id) || empty($sid)) {
$errors = [
'error' => [
'message' => 'Both webform ID and submission ID are required.',
],
];
return new ModifiedResourceResponse($errors);
}
// Get webform submission results from Webform Submission Resource.
$webformSubmissionResource = new WebformSubmissionResource($this->configuration, 'webform_rest_submission', $this->pluginDefinition, $this->serializerFormats, $this->logger);
$webform_submission = $webformSubmissionResource
->get($webform_id, $sid);
$submissionData = $webform_submission
->getResponseData();
// Get webform fields/structure from Webform Fields Resource.
$webformFieldsResource = new WebformFieldsResource($this->configuration, 'webform_rest_fields', $this->pluginDefinition, $this->serializerFormats, $this->logger);
$fields = $webformFieldsResource
->get($webform_id);
$fieldsData = $fields
->getResponseData();
// Get webform entity.
$webform = Webform::load($webform_id);
// Get webform title.
$title = $webform
->label();
$result = $this
->buildResponse($fieldsData, $submissionData);
return new ModifiedResourceResponse([
'title' => $title,
'processed_submission' => $result,
'webform_submission' => $submissionData,
]);
}