diff options
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 |
