aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/classes/JsonApi/Authorities/Courseware/StructuralElementAuthority.php55
-rw-r--r--lib/classes/JsonApi/Routes/Courseware/CoursewareContainers.php2
-rw-r--r--lib/classes/JsonApi/Routes/Courseware/CoursewareStructuralElements.php75
-rw-r--r--lib/classes/JsonApi/Routes/Courseware/Rel/BookmarkedStructuralElements.php2
-rw-r--r--lib/classes/JsonApi/Routes/Courseware/Rel/StructuralElementsChildren.php6
-rw-r--r--lib/classes/JsonApi/Routes/Courseware/Rel/StructuralElementsContainers.php4
-rw-r--r--lib/classes/JsonApi/Routes/Courseware/Rel/StructuralElementsEditBlocker.php2
-rw-r--r--lib/classes/JsonApi/Routes/Courseware/Rel/UsersBookmarkedStructuralElements.php2
-rw-r--r--lib/classes/JsonApi/Routes/Courseware/StructuralElementCommentsCreate.php2
-rw-r--r--lib/classes/JsonApi/Routes/Courseware/StructuralElementCommentsUpdate.php2
-rw-r--r--lib/classes/JsonApi/Routes/Courseware/StructuralElementFeedbackCreate.php2
-rw-r--r--lib/classes/JsonApi/Routes/Courseware/StructuralElementFeedbackUpdate.php2
-rw-r--r--lib/classes/JsonApi/Routes/Courseware/StructuralElementsCreate.php2
-rw-r--r--lib/classes/JsonApi/Routes/Courseware/StructuralElementsUpdate.php2
-rw-r--r--lib/classes/JsonApi/Routes/Courseware/TaskGroupsCreate.php2
-rw-r--r--lib/classes/JsonApi/Routes/Courseware/TemplatesCreate.php2
-rw-r--r--lib/classes/JsonApi/SchemaMap.php2
-rw-r--r--lib/classes/JsonApi/Schemas/Courseware/StructuralElementSchema.php (renamed from lib/classes/JsonApi/Schemas/Courseware/StructuralElement.php)11
-rw-r--r--package-lock.json8
-rw-r--r--tests/jsonapi/StructuralElementsShowTest.php2
20 files changed, 156 insertions, 31 deletions
diff --git a/lib/classes/JsonApi/Authorities/Courseware/StructuralElementAuthority.php b/lib/classes/JsonApi/Authorities/Courseware/StructuralElementAuthority.php
new file mode 100644
index 0000000..943ced2
--- /dev/null
+++ b/lib/classes/JsonApi/Authorities/Courseware/StructuralElementAuthority.php
@@ -0,0 +1,55 @@
+<?php
+
+namespace JsonApi\Authorities\Courseware;
+
+use Courseware\StructuralElement;
+use JsonApi\Authorities\SORMAuthority;
+use JsonApi\SORM;
+use User;
+
+final class StructuralElementAuthority implements SORMAuthority
+{
+ /**
+ * @param User|null $user
+ * @param StructuralElement $sorm
+ *
+ * @return bool
+ */
+ public function mayCreate(?User $user, SORM $sorm): bool
+ {
+ return $sorm->canEdit($user);
+ }
+
+ /**
+ * @param User|null $user
+ * @param StructuralElement $sorm
+ *
+ * @return bool
+ */
+ public function mayAccess(?User $user, SORM $sorm): bool
+ {
+ return $sorm->canRead($user);
+ }
+
+ /**
+ * @param User|null $user
+ * @param StructuralElement $sorm
+ *
+ * @return bool
+ */
+ public function mayEdit(?User $user, SORM $sorm): bool
+ {
+ return $sorm->canEdit($user);
+ }
+
+ /**
+ * @param User|null $user
+ * @param StructuralElement $sorm
+ *
+ * @return bool
+ */
+ public function mayDelete(?User $user, SORM $sorm): bool
+ {
+ return $sorm->canEdit($user);
+ }
+}
diff --git a/lib/classes/JsonApi/Routes/Courseware/CoursewareContainers.php b/lib/classes/JsonApi/Routes/Courseware/CoursewareContainers.php
index 1e12f70..9dc57a2 100644
--- a/lib/classes/JsonApi/Routes/Courseware/CoursewareContainers.php
+++ b/lib/classes/JsonApi/Routes/Courseware/CoursewareContainers.php
@@ -8,7 +8,7 @@ use Courseware\ContainerTypes\ContainerType;
use Courseware\StructuralElement;
use JsonApi\Errors\UnprocessableEntityException;
use JsonApi\Schemas\Courseware\ContainerSchema;
-use JsonApi\Schemas\Courseware\StructuralElement as StructuralElementSchema;
+use JsonApi\Schemas\Courseware\StructuralElementSchema as StructuralElementSchema;
use JsonApi\SORM;
use JsonApi\SormCRUDController;
use Psr\Http\Message\ResponseInterface as Response;
diff --git a/lib/classes/JsonApi/Routes/Courseware/CoursewareStructuralElements.php b/lib/classes/JsonApi/Routes/Courseware/CoursewareStructuralElements.php
new file mode 100644
index 0000000..ef55d1c
--- /dev/null
+++ b/lib/classes/JsonApi/Routes/Courseware/CoursewareStructuralElements.php
@@ -0,0 +1,75 @@
+<?php
+
+namespace JsonApi\Routes\Courseware;
+
+use Courseware\StructuralElement;
+use JsonApi\Schemas\Courseware\ContainerSchema;
+use JsonApi\Schemas\Courseware\StructuralElementSchema;
+use JsonApi\SORM;
+use JsonApi\SormCRUDController;
+use Psr\Http\Message\ServerRequestInterface as Request;
+
+/**
+ * Class StructuralElementsIndex.
+ */
+class CoursewareStructuralElements extends SormCRUDController
+{
+ protected $allowedPagingParameters = ['offset', 'limit'];
+
+ protected $allowedIncludePaths = [
+ StructuralElementSchema::REL_ANCESTORS,
+ StructuralElementSchema::REL_CHILDREN,
+ StructuralElementSchema::REL_CONTAINERS,
+ StructuralElementSchema::REL_CONTAINERS . ContainerSchema::REL_BLOCKS,
+ StructuralElementSchema::REL_CONTAINERS . ContainerSchema::REL_BLOCKS . 'edit-blocker',
+ StructuralElementSchema::REL_CONTAINERS . ContainerSchema::REL_BLOCKS . 'editor',
+ StructuralElementSchema::REL_CONTAINERS . ContainerSchema::REL_BLOCKS . 'owner',
+ StructuralElementSchema::REL_CONTAINERS . ContainerSchema::REL_BLOCKS . 'user-data-field',
+ StructuralElementSchema::REL_CONTAINERS . ContainerSchema::REL_BLOCKS . 'user-progress',
+ StructuralElementSchema::REL_COURSE,
+ StructuralElementSchema::REL_EDITOR,
+ StructuralElementSchema::REL_OWNER,
+ StructuralElementSchema::REL_PARENT,
+ ];
+
+ protected function getSORMClassName(): string
+ {
+ return StructuralElement::class;
+ }
+
+ /**
+ * @param StructuralElement|null $current
+ */
+ protected function getData(Request $request, array $args, ?SORM $current = null): array
+ {
+ $user = $this->getUser($request);
+ $data = [
+ 'position' => (int) $this->getAttribute('position', $current ? $current->position : 0),
+ 'title' => $this->getAttribute('title', $current ? $current->title :''),
+ 'purpose' => $this->getAttribute('purpose', $current ? $current->purpose : ''),
+ 'payload' => $this->getAttribute('payload', $current ? $current->payload->getIterator() : []),
+ 'public' => (int) $this->getAttribute('public', $current ? $current->public : 0),
+ 'permission-type' => $this->getAttribute('permission-type', $current ? $current->permission_type : ''),
+ 'visible' => $this->getAttribute('visible', $current ? $current->visible : ''),
+ 'visible_all' => (bool) $this->getAttribute('visible-all', $current ? $current->visible_all : ''),
+ 'visible-start-date' => $this->getDateAttribute('visible-start-date'),
+ 'visible-end-date' => $this->getDateAttribute('visible-end-date'),
+ 'writable' => (string) $this->getAttribute('writable', $current ? $current->writable : ''),
+ 'writable_all' => (bool) $this->getAttribute('writable-all', $current ? $current->writable_all : ''),
+ 'writable_start_date' => $this->getDateAttribute('writable-start-date'),
+ 'writable_end_date' => $this->getDateAttribute('writable-end-date'),
+ 'visible_approval' => json_encode($this->getAttribute('visible-approval', $current ? $current->visible_approval : '')),
+ 'writable_approval' => json_encode($this->getAttribute('writable-approval', $current ? $current->writable_end_date : '')),
+ 'content_approval' => $this->getAttribute('content-approval', $current ? $current->content_approval->getIterator() : []),
+ 'copy_approval' => $this->getAttribute('copy-approval', $current ? $current->copy_approval->getIterator() : []),
+ 'can_edit' => $current ? $current->canEdit($user) : false,
+ 'can_visit' => $current ? $current->canVisit($user) : false,
+ 'is_link' => (int) $this->getAttribute('is-link', $current ? $current->is_link : 0),
+ 'commentable' => (bool) $this->getAttribute('commentable', $current ? $current->commentable : false),
+ 'target_id' => (int) $this->getAttribute('target-id', $current ? $current->target_id : ''),
+ 'external_relations' => $this->getAttribute('external-relations', $current ? $current->external_relations->getIterator() : []),
+ 'mkdate' => $this->getDateAttribute('mkdate'),
+ 'chdate' => $this->getDateAttribute('chdate'),
+ ];
+ }
+}
diff --git a/lib/classes/JsonApi/Routes/Courseware/Rel/BookmarkedStructuralElements.php b/lib/classes/JsonApi/Routes/Courseware/Rel/BookmarkedStructuralElements.php
index 1e68624..ef28079 100644
--- a/lib/classes/JsonApi/Routes/Courseware/Rel/BookmarkedStructuralElements.php
+++ b/lib/classes/JsonApi/Routes/Courseware/Rel/BookmarkedStructuralElements.php
@@ -112,7 +112,7 @@ class BookmarkedStructuralElements extends RelationshipsController
}
foreach ($data as $item) {
- if (\JsonApi\Schemas\Courseware\StructuralElement::TYPE !== self::arrayGet($item, 'type')) {
+ if (\JsonApi\Schemas\Courseware\StructuralElementSchema::TYPE !== self::arrayGet($item, 'type')) {
return 'Wrong `type` in document´s `data`.';
}
diff --git a/lib/classes/JsonApi/Routes/Courseware/Rel/StructuralElementsChildren.php b/lib/classes/JsonApi/Routes/Courseware/Rel/StructuralElementsChildren.php
index 3ff573a..bf5b227 100644
--- a/lib/classes/JsonApi/Routes/Courseware/Rel/StructuralElementsChildren.php
+++ b/lib/classes/JsonApi/Routes/Courseware/Rel/StructuralElementsChildren.php
@@ -62,7 +62,7 @@ class StructuralElementsChildren extends RelationshipsController
*/
protected function getRelationshipSelfLink($resource, $schema, $userData)
{
- return $schema->getRelationshipSelfLink($resource, \JsonApi\Schemas\Courseware\StructuralElement::REL_CHILDREN);
+ return $schema->getRelationshipSelfLink($resource, \JsonApi\Schemas\Courseware\StructuralElementSchema::REL_CHILDREN);
}
/**
@@ -70,7 +70,7 @@ class StructuralElementsChildren extends RelationshipsController
*/
protected function getRelationshipRelatedLink($resource, $schema, $userData)
{
- return $schema->getRelationshipRelatedLink($resource, \JsonApi\Schemas\Courseware\StructuralElement::REL_CHILDREN);
+ return $schema->getRelationshipRelatedLink($resource, \JsonApi\Schemas\Courseware\StructuralElementSchema::REL_CHILDREN);
}
protected function validateResourceDocument($json, $data)
@@ -86,7 +86,7 @@ class StructuralElementsChildren extends RelationshipsController
}
foreach ($data as $item) {
- if (self::arrayGet($item, 'type') !== \JsonApi\Schemas\Courseware\StructuralElement::TYPE) {
+ if (self::arrayGet($item, 'type') !== \JsonApi\Schemas\Courseware\StructuralElementSchema::TYPE) {
return 'Wrong `type` in document´s `data`.';
}
diff --git a/lib/classes/JsonApi/Routes/Courseware/Rel/StructuralElementsContainers.php b/lib/classes/JsonApi/Routes/Courseware/Rel/StructuralElementsContainers.php
index 3ede3e5..44ee3fe 100644
--- a/lib/classes/JsonApi/Routes/Courseware/Rel/StructuralElementsContainers.php
+++ b/lib/classes/JsonApi/Routes/Courseware/Rel/StructuralElementsContainers.php
@@ -63,7 +63,7 @@ class StructuralElementsContainers extends RelationshipsController
*/
protected function getRelationshipSelfLink($resource, $schema, $userData)
{
- return $schema->getRelationshipSelfLink($resource, \JsonApi\Schemas\Courseware\StructuralElement::REL_CONTAINERS);
+ return $schema->getRelationshipSelfLink($resource, \JsonApi\Schemas\Courseware\StructuralElementSchema::REL_CONTAINERS);
}
/**
@@ -71,7 +71,7 @@ class StructuralElementsContainers extends RelationshipsController
*/
protected function getRelationshipRelatedLink($resource, $schema, $userData)
{
- return $schema->getRelationshipRelatedLink($resource, \JsonApi\Schemas\Courseware\StructuralElement::REL_CONTAINERS);
+ return $schema->getRelationshipRelatedLink($resource, \JsonApi\Schemas\Courseware\StructuralElementSchema::REL_CONTAINERS);
}
protected function validateResourceDocument($json, $data)
diff --git a/lib/classes/JsonApi/Routes/Courseware/Rel/StructuralElementsEditBlocker.php b/lib/classes/JsonApi/Routes/Courseware/Rel/StructuralElementsEditBlocker.php
index 3c2780f..b376707 100644
--- a/lib/classes/JsonApi/Routes/Courseware/Rel/StructuralElementsEditBlocker.php
+++ b/lib/classes/JsonApi/Routes/Courseware/Rel/StructuralElementsEditBlocker.php
@@ -73,7 +73,7 @@ class StructuralElementsEditBlocker extends RelationshipsController
*/
protected function getRelationshipSelfLink($resource, $schema, $userData)
{
- return $schema->getRelationshipSelfLink($resource, \JsonApi\Schemas\Courseware\StructuralElement::REL_EDITBLOCKER);
+ return $schema->getRelationshipSelfLink($resource, \JsonApi\Schemas\Courseware\StructuralElementSchema::REL_EDITBLOCKER);
}
/**
diff --git a/lib/classes/JsonApi/Routes/Courseware/Rel/UsersBookmarkedStructuralElements.php b/lib/classes/JsonApi/Routes/Courseware/Rel/UsersBookmarkedStructuralElements.php
index cfe487d..1f9f990 100644
--- a/lib/classes/JsonApi/Routes/Courseware/Rel/UsersBookmarkedStructuralElements.php
+++ b/lib/classes/JsonApi/Routes/Courseware/Rel/UsersBookmarkedStructuralElements.php
@@ -113,7 +113,7 @@ class UsersBookmarkedStructuralElements extends RelationshipsController
}
foreach ($data as $item) {
- if (\JsonApi\Schemas\Courseware\StructuralElement::TYPE !== self::arrayGet($item, 'type')) {
+ if (\JsonApi\Schemas\Courseware\StructuralElementSchema::TYPE !== self::arrayGet($item, 'type')) {
return 'Wrong `type` in document´s `data`.';
}
diff --git a/lib/classes/JsonApi/Routes/Courseware/StructuralElementCommentsCreate.php b/lib/classes/JsonApi/Routes/Courseware/StructuralElementCommentsCreate.php
index 9dfa77b..9ab427e 100644
--- a/lib/classes/JsonApi/Routes/Courseware/StructuralElementCommentsCreate.php
+++ b/lib/classes/JsonApi/Routes/Courseware/StructuralElementCommentsCreate.php
@@ -5,7 +5,7 @@ namespace JsonApi\Routes\Courseware;
use JsonApi\Errors\AuthorizationFailedException;
use JsonApi\JsonApiController;
use JsonApi\Routes\ValidationTrait;
-use JsonApi\Schemas\Courseware\StructuralElement as StructuralElementSchema;
+use JsonApi\Schemas\Courseware\StructuralElementSchema as StructuralElementSchema;
use JsonApi\Schemas\Courseware\StructuralElementComment as StructuralElementCommentSchema;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
diff --git a/lib/classes/JsonApi/Routes/Courseware/StructuralElementCommentsUpdate.php b/lib/classes/JsonApi/Routes/Courseware/StructuralElementCommentsUpdate.php
index 5728847..c2e7c6a 100644
--- a/lib/classes/JsonApi/Routes/Courseware/StructuralElementCommentsUpdate.php
+++ b/lib/classes/JsonApi/Routes/Courseware/StructuralElementCommentsUpdate.php
@@ -7,7 +7,7 @@ use JsonApi\Errors\AuthorizationFailedException;
use JsonApi\Errors\RecordNotFoundException;
use JsonApi\JsonApiController;
use JsonApi\Routes\ValidationTrait;
-use JsonApi\Schemas\Courseware\StructuralElement as StructuralElementSchema;
+use JsonApi\Schemas\Courseware\StructuralElementSchema as StructuralElementSchema;
use JsonApi\Schemas\Courseware\StructuralElementComment as StructuralElementCommentSchema;
use JsonApi\Schemas\User as UserSchema;
use Psr\Http\Message\ResponseInterface as Response;
diff --git a/lib/classes/JsonApi/Routes/Courseware/StructuralElementFeedbackCreate.php b/lib/classes/JsonApi/Routes/Courseware/StructuralElementFeedbackCreate.php
index bcf5425..a3b8d71 100644
--- a/lib/classes/JsonApi/Routes/Courseware/StructuralElementFeedbackCreate.php
+++ b/lib/classes/JsonApi/Routes/Courseware/StructuralElementFeedbackCreate.php
@@ -6,7 +6,7 @@ use Courseware\Container;
use JsonApi\Errors\AuthorizationFailedException;
use JsonApi\JsonApiController;
use JsonApi\Routes\ValidationTrait;
-use JsonApi\Schemas\Courseware\StructuralElement as StructuralElementSchema;
+use JsonApi\Schemas\Courseware\StructuralElementSchema as StructuralElementSchema;
use JsonApi\Schemas\Courseware\StructuralElementFeedback as StructuralElementFeedbackSchema;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
diff --git a/lib/classes/JsonApi/Routes/Courseware/StructuralElementFeedbackUpdate.php b/lib/classes/JsonApi/Routes/Courseware/StructuralElementFeedbackUpdate.php
index 5d4b0af..6e3eedc 100644
--- a/lib/classes/JsonApi/Routes/Courseware/StructuralElementFeedbackUpdate.php
+++ b/lib/classes/JsonApi/Routes/Courseware/StructuralElementFeedbackUpdate.php
@@ -7,7 +7,7 @@ use JsonApi\Errors\AuthorizationFailedException;
use JsonApi\Errors\RecordNotFoundException;
use JsonApi\JsonApiController;
use JsonApi\Routes\ValidationTrait;
-use JsonApi\Schemas\Courseware\StructuralElement as StructuralElementSchema;
+use JsonApi\Schemas\Courseware\StructuralElementSchema as StructuralElementSchema;
use JsonApi\Schemas\Courseware\StructuralElementFeedback as StructuralElementFeedbackSchema;
use JsonApi\Schemas\User as UserSchema;
use Psr\Http\Message\ResponseInterface as Response;
diff --git a/lib/classes/JsonApi/Routes/Courseware/StructuralElementsCreate.php b/lib/classes/JsonApi/Routes/Courseware/StructuralElementsCreate.php
index 082821b..30002c4 100644
--- a/lib/classes/JsonApi/Routes/Courseware/StructuralElementsCreate.php
+++ b/lib/classes/JsonApi/Routes/Courseware/StructuralElementsCreate.php
@@ -5,7 +5,7 @@ namespace JsonApi\Routes\Courseware;
use JsonApi\Errors\AuthorizationFailedException;
use JsonApi\JsonApiController;
use JsonApi\Routes\ValidationTrait;
-use JsonApi\Schemas\Courseware\StructuralElement as StructuralElementSchema;
+use JsonApi\Schemas\Courseware\StructuralElementSchema as StructuralElementSchema;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Studip\Activity\Activity;
diff --git a/lib/classes/JsonApi/Routes/Courseware/StructuralElementsUpdate.php b/lib/classes/JsonApi/Routes/Courseware/StructuralElementsUpdate.php
index ae58bca..820fda7 100644
--- a/lib/classes/JsonApi/Routes/Courseware/StructuralElementsUpdate.php
+++ b/lib/classes/JsonApi/Routes/Courseware/StructuralElementsUpdate.php
@@ -8,7 +8,7 @@ use JsonApi\Errors\RecordNotFoundException;
use JsonApi\JsonApiController;
use JsonApi\Routes\TimestampTrait;
use JsonApi\Routes\ValidationTrait;
-use JsonApi\Schemas\Courseware\StructuralElement as StructuralElementSchema;
+use JsonApi\Schemas\Courseware\StructuralElementSchema as StructuralElementSchema;
use JsonApi\Schemas\FileRef as FileRefSchema;
use JsonApi\Schemas\StockImage as StockImageSchema;
use Psr\Http\Message\ResponseInterface as Response;
diff --git a/lib/classes/JsonApi/Routes/Courseware/TaskGroupsCreate.php b/lib/classes/JsonApi/Routes/Courseware/TaskGroupsCreate.php
index f7357a4..3d0f481 100644
--- a/lib/classes/JsonApi/Routes/Courseware/TaskGroupsCreate.php
+++ b/lib/classes/JsonApi/Routes/Courseware/TaskGroupsCreate.php
@@ -9,7 +9,7 @@ use JsonApi\Errors\AuthorizationFailedException;
use JsonApi\JsonApiController;
use JsonApi\Routes\TimestampTrait;
use JsonApi\Routes\ValidationTrait;
-use JsonApi\Schemas\Courseware\StructuralElement as StructuralElementSchema;
+use JsonApi\Schemas\Courseware\StructuralElementSchema as StructuralElementSchema;
use JsonApi\Schemas\Courseware\TaskGroup as TaskGroupSchema;
use JsonApi\Schemas\StatusGroup as StatusGroupSchema;
use JsonApi\Schemas\User as UserSchema;
diff --git a/lib/classes/JsonApi/Routes/Courseware/TemplatesCreate.php b/lib/classes/JsonApi/Routes/Courseware/TemplatesCreate.php
index f23468c..58a1994 100644
--- a/lib/classes/JsonApi/Routes/Courseware/TemplatesCreate.php
+++ b/lib/classes/JsonApi/Routes/Courseware/TemplatesCreate.php
@@ -8,7 +8,7 @@ use JsonApi\Errors\UnprocessableEntityException;
use JsonApi\JsonApiController;
use JsonApi\Routes\ValidationTrait;
use JsonApi\Schemas\Courseware\Task as TaskSchema;
-use JsonApi\Schemas\Courseware\StructuralElement as StructuralElementSchema;
+use JsonApi\Schemas\Courseware\StructuralElementSchema as StructuralElementSchema;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
diff --git a/lib/classes/JsonApi/SchemaMap.php b/lib/classes/JsonApi/SchemaMap.php
index 3d7dae4..1db5759 100644
--- a/lib/classes/JsonApi/SchemaMap.php
+++ b/lib/classes/JsonApi/SchemaMap.php
@@ -96,7 +96,7 @@ class SchemaMap
\Courseware\PeerReview::class => Schemas\Courseware\PeerReview::class,
\Courseware\PeerReviewProcess::class => Schemas\Courseware\PeerReviewProcess::class,
\Courseware\PublicLink::class => Schemas\Courseware\PublicLink::class,
- \Courseware\StructuralElement::class => Schemas\Courseware\StructuralElement::class,
+ \Courseware\StructuralElement::class => Schemas\Courseware\StructuralElementSchema::class,
\Courseware\StructuralElementComment::class => Schemas\Courseware\StructuralElementComment::class,
\Courseware\StructuralElementFeedback::class => Schemas\Courseware\StructuralElementFeedback::class,
\Courseware\Task::class => Schemas\Courseware\Task::class,
diff --git a/lib/classes/JsonApi/Schemas/Courseware/StructuralElement.php b/lib/classes/JsonApi/Schemas/Courseware/StructuralElementSchema.php
index c00d863..5d0caa7 100644
--- a/lib/classes/JsonApi/Schemas/Courseware/StructuralElement.php
+++ b/lib/classes/JsonApi/Schemas/Courseware/StructuralElementSchema.php
@@ -7,7 +7,7 @@ use Neomerx\JsonApi\Contracts\Schema\ContextInterface;
use Neomerx\JsonApi\Schema\Identifier;
use Neomerx\JsonApi\Schema\Link;
-class StructuralElement extends SchemaProvider
+class StructuralElementSchema extends SchemaProvider
{
const TYPE = 'courseware-structural-elements';
@@ -26,13 +26,6 @@ class StructuralElement extends SchemaProvider
const REL_UNIT = 'unit';
const REL_FEEDBACKELEMENT = 'feedback-element';
- /**
- * {@inheritdoc}
- */
- public function getId($resource): ?string
- {
- return $resource->id;
- }
/**
* {@inheritdoc}
@@ -74,7 +67,7 @@ class StructuralElement extends SchemaProvider
/**
* {@inheritdoc}
*
- * @param StructuralElement $resource
+ * @param StructuralElementSchema $resource
* @param ContextInterface $context
*/
public function getRelationships($resource, ContextInterface $context): iterable
diff --git a/package-lock.json b/package-lock.json
index 09d74d5..9aa3e34 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -12,9 +12,7 @@
"@fullcalendar/resource": "^6.1.19",
"@fullcalendar/vue3": "^6.1.19",
"@vojtechlanka/vue-tags-input": "^3.1.1",
- "jsonapi-serializer": "^3.6.9",
- "qrcode.vue": "^3.6.0",
- "sqids": "^0.3.0"
+ "jsonapi-serializer": "^3.6.9"
},
"devDependencies": {
"@axe-core/playwright": "^4.6.1",
@@ -95,12 +93,14 @@
"postcss": "^8.4.49",
"postcss-loader": "^8.1.1",
"postcss-scss": "^4.0.4",
+ "qrcode.vue": "^3.6.0",
"raw-loader": "^4.0.2",
"sanitize-html": "^2.7.0",
"sass": "^1.29.0",
"sass-loader": "^16.0.4",
"select2": "4.0.13",
"sprintf-js": "^1.0.3",
+ "sqids": "^0.3.0",
"stream-browserify": "^3.0.0",
"style-loader": "^4.0.0",
"stylelint": "^15.11.0",
@@ -11601,6 +11601,7 @@
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/qrcode.vue/-/qrcode.vue-3.6.0.tgz",
"integrity": "sha512-vQcl2fyHYHMjDO1GguCldJxepq2izQjBkDEEu9NENgfVKP6mv/e2SU62WbqYHGwTgWXLhxZ1NCD1dAZKHQq1fg==",
+ "dev": true,
"license": "MIT",
"peerDependencies": {
"vue": "^3.0.0"
@@ -12535,6 +12536,7 @@
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/sqids/-/sqids-0.3.0.tgz",
"integrity": "sha512-lOQK1ucVg+W6n3FhRwwSeUijxe93b51Bfz5PMRMihVf1iVkl82ePQG7V5vwrhzB11v0NtsR25PSZRGiSomJaJw==",
+ "dev": true,
"license": "MIT"
},
"node_modules/stack-utils": {
diff --git a/tests/jsonapi/StructuralElementsShowTest.php b/tests/jsonapi/StructuralElementsShowTest.php
index c42e88f..83a21cc 100644
--- a/tests/jsonapi/StructuralElementsShowTest.php
+++ b/tests/jsonapi/StructuralElementsShowTest.php
@@ -3,7 +3,7 @@
use Courseware\Instance;
use Courseware\StructuralElement;
use JsonApi\Routes\Courseware\StructuralElementsShow;
-use JsonApi\Schemas\Courseware\StructuralElement as Schema;
+use JsonApi\Schemas\Courseware\StructuralElementSchema as Schema;
use WoohooLabs\Yang\JsonApi\Response\JsonApiResponse;
class StructuralElementsShowTest extends \Codeception\Test\Unit