aboutsummaryrefslogtreecommitdiff
path: root/lib/classes/JsonApi/Routes/Courseware/StructuralElementFeedbackOfStructuralElementsIndex.php
diff options
context:
space:
mode:
authorRon Lucke <lucke@elan-ev.de>2022-02-07 14:27:25 +0000
committerRon Lucke <lucke@elan-ev.de>2022-02-07 14:27:25 +0000
commit333b1181662f26afe13256b26c6c87605d627d10 (patch)
tree4b7220f5eb8794d654cb03c1f015cb43ea071c6a /lib/classes/JsonApi/Routes/Courseware/StructuralElementFeedbackOfStructuralElementsIndex.php
parente40d838a4f73cf1a0bd5a35fdfd7a476b523d3f1 (diff)
StEP 00357
Diffstat (limited to 'lib/classes/JsonApi/Routes/Courseware/StructuralElementFeedbackOfStructuralElementsIndex.php')
-rwxr-xr-xlib/classes/JsonApi/Routes/Courseware/StructuralElementFeedbackOfStructuralElementsIndex.php38
1 files changed, 38 insertions, 0 deletions
diff --git a/lib/classes/JsonApi/Routes/Courseware/StructuralElementFeedbackOfStructuralElementsIndex.php b/lib/classes/JsonApi/Routes/Courseware/StructuralElementFeedbackOfStructuralElementsIndex.php
new file mode 100755
index 0000000..855ce60
--- /dev/null
+++ b/lib/classes/JsonApi/Routes/Courseware/StructuralElementFeedbackOfStructuralElementsIndex.php
@@ -0,0 +1,38 @@
+<?php
+
+namespace JsonApi\Routes\Courseware;
+
+use Courseware\StructuralElement;
+use Courseware\StructuralElementFeedback;
+use JsonApi\Errors\AuthorizationFailedException;
+use JsonApi\Errors\RecordNotFoundException;
+use JsonApi\JsonApiController;
+use Psr\Http\Message\ResponseInterface as Response;
+use Psr\Http\Message\ServerRequestInterface as Request;
+
+/**
+ * Displays the feedback of a StructuralElement.
+ */
+class StructuralElementFeedbackOfStructuralElementsIndex extends JsonApiController
+{
+ protected $allowedIncludePaths = ['user', 'structural-element'];
+
+ /**
+ * @SuppressWarnings(PHPMD.UnusedFormalParameter)
+ */
+ public function __invoke(Request $request, Response $response, $args)
+ {
+ /** @var ?Block $block */
+ $structuralElement = StructuralElement::find($args['id']);
+ if (!$structuralElement) {
+ throw new RecordNotFoundException();
+ }
+ if (!Authority::canIndexStructuralElementFeedback($this->getUser($request), $structuralElement)) {
+ throw new AuthorizationFailedException();
+ }
+ /** @var StructuralElementFeedback[] $resources */
+ $resources = $structuralElement->feedback;
+
+ return $this->getContentResponse($resources);
+ }
+}