aboutsummaryrefslogtreecommitdiff
path: root/lib/classes
diff options
context:
space:
mode:
Diffstat (limited to 'lib/classes')
-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
18 files changed, 150 insertions, 27 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