aboutsummaryrefslogtreecommitdiffstats
path: root/lib/public/Federation/Exceptions/BadRequestException.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/public/Federation/Exceptions/BadRequestException.php')
-rw-r--r--lib/public/Federation/Exceptions/BadRequestException.php62
1 files changed, 62 insertions, 0 deletions
diff --git a/lib/public/Federation/Exceptions/BadRequestException.php b/lib/public/Federation/Exceptions/BadRequestException.php
new file mode 100644
index 00000000000..0210437a8d5
--- /dev/null
+++ b/lib/public/Federation/Exceptions/BadRequestException.php
@@ -0,0 +1,62 @@
+<?php
+
+/**
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCP\Federation\Exceptions;
+
+use OCP\HintException;
+
+/**
+ * Class BadRequestException
+ *
+ *
+ * @since 14.0.0
+ */
+class BadRequestException extends HintException {
+ /**
+ * @var string[] $parameterList
+ */
+ private $parameterList;
+
+ /**
+ * BadRequestException constructor.
+ *
+ * @since 14.0.0
+ *
+ * @param array $missingParameters
+ */
+ public function __construct(array $missingParameters) {
+ $l = \OCP\Util::getL10N('federation');
+ $this->parameterList = $missingParameters;
+ $parameterList = implode(',', $missingParameters);
+ $message = 'Parameters missing in order to complete the request. Missing Parameters: ' . $parameterList;
+ $hint = $l->t('Parameters missing in order to complete the request. Missing Parameters: "%s"', [$parameterList]);
+ parent::__construct($message, $hint);
+ }
+
+ /**
+ * get array with the return message as defined in the OCM API
+ *
+ * @since 14.0.0
+ *
+ * @return array{message: string, validationErrors: array{message: string, name: string}[]}
+ */
+ public function getReturnMessage() {
+ $result = [
+ 'message' => 'RESOURCE_NOT_FOUND',
+ 'validationErrors' => [
+ ]
+ ];
+
+ foreach ($this->parameterList as $missingParameter) {
+ $result['validationErrors'][] = [
+ 'name' => $missingParameter,
+ 'message' => 'NOT_FOUND'
+ ];
+ }
+
+ return $result;
+ }
+}