public function WebformCompleteSubmissionResource::get in Webform REST 4.x
Same name and namespace in other branches
- 8.2 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.
string $uuid: Webform Submission UUID.
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 53
Class
- WebformCompleteSubmissionResource
- Creates a resource for retrieving webform submission data and fields.
Namespace
Drupal\webform_rest\Plugin\rest\resourceCode
public function get($webform_id, $uuid) {
if (empty($webform_id) || empty($uuid)) {
$errors = [
'error' => [
'message' => $this
->t('Both webform ID and submission UUID are required.'),
],
];
return new ModifiedResourceResponse($errors, 400);
}
// Get webform submission results from Webform Submission Resource.
$webform_submission = $this->entityTypeManager
->getStorage('webform_submission')
->loadByProperties([
'uuid' => $uuid,
]);
if (empty($webform_submission)) {
$errors = [
'error' => [
'message' => $this
->t('Invalid submission UUID.'),
],
];
return new ModifiedResourceResponse($errors, 400);
}
$webform_submission = reset($webform_submission);
$submissionData = $webform_submission
->getData();
// 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,
]);
}