diff --git a/lib/classes/JsonApi/Routes/Blubber/FilterTrait.php b/lib/classes/JsonApi/Routes/Blubber/FilterTrait.php index 1f043388f68733707f07e0c94fcd911bbd553e90..40bf4b0a098ce56887950cd5734a8810f5d769a3 100644 --- a/lib/classes/JsonApi/Routes/Blubber/FilterTrait.php +++ b/lib/classes/JsonApi/Routes/Blubber/FilterTrait.php @@ -2,7 +2,7 @@ namespace JsonApi\Routes\Blubber; -use Psr\Http\Message\ServerRequestInterface as Request; +use JsonApi\Errors\BadRequestException; trait FilterTrait { diff --git a/lib/classes/JsonApi/Routes/CourseMemberships/CourseMembershipsUpdate.php b/lib/classes/JsonApi/Routes/CourseMemberships/CourseMembershipsUpdate.php index 1ec91e7d72f03f2b84f26b529f10e785f738b26c..6bf71eadd06a6c40700d1e8d238ba7b5ecdd6845 100644 --- a/lib/classes/JsonApi/Routes/CourseMemberships/CourseMembershipsUpdate.php +++ b/lib/classes/JsonApi/Routes/CourseMemberships/CourseMembershipsUpdate.php @@ -4,6 +4,7 @@ namespace JsonApi\Routes\CourseMemberships; use JsonApi\Errors\AuthorizationFailedException; use JsonApi\Errors\BadRequestException; +use JsonApi\Errors\InternalServerError; use JsonApi\Errors\RecordNotFoundException; use JsonApi\JsonApiController; use JsonApi\Routes\ValidationTrait; diff --git a/lib/classes/JsonApi/Routes/Courses/CoursesMembershipsIndex.php b/lib/classes/JsonApi/Routes/Courses/CoursesMembershipsIndex.php index 0d09a34ce1d86c232e09c5e970a301a1f55eebfc..d4877bbe9692d08e941637caee36645d5c93d241 100644 --- a/lib/classes/JsonApi/Routes/Courses/CoursesMembershipsIndex.php +++ b/lib/classes/JsonApi/Routes/Courses/CoursesMembershipsIndex.php @@ -5,6 +5,7 @@ namespace JsonApi\Routes\Courses; use Psr\Http\Message\ServerRequestInterface as Request; use Psr\Http\Message\ResponseInterface as Response; use JsonApi\Errors\AuthorizationFailedException; +use JsonApi\Errors\BadRequestException; use JsonApi\Errors\RecordNotFoundException; use JsonApi\JsonApiController; use JsonApi\Schemas\CourseMember; diff --git a/lib/classes/JsonApi/Routes/Courses/Rel/Memberships.php b/lib/classes/JsonApi/Routes/Courses/Rel/Memberships.php index 2932aaafe29ffb2070a92c059cde565b4141b78d..77591bffd6609a02ad3990614cea0c199ec45f59 100644 --- a/lib/classes/JsonApi/Routes/Courses/Rel/Memberships.php +++ b/lib/classes/JsonApi/Routes/Courses/Rel/Memberships.php @@ -3,6 +3,7 @@ namespace JsonApi\Routes\Courses\Rel; use Psr\Http\Message\ServerRequestInterface as Request; +use JsonApi\Errors\RecordNotFoundException; use JsonApi\Routes\Courses\Authority; use JsonApi\Routes\RelationshipsController; diff --git a/lib/classes/JsonApi/Routes/Courseware/Authority.php b/lib/classes/JsonApi/Routes/Courseware/Authority.php index 9c5a37b4fbc318b943e2173e731380a2658cc12d..6f192d7d451ca4328d6a5b1f49169a28ca0ac862 100755 --- a/lib/classes/JsonApi/Routes/Courseware/Authority.php +++ b/lib/classes/JsonApi/Routes/Courseware/Authority.php @@ -8,6 +8,8 @@ use Courseware\BlockFeedback; use Courseware\Container; use Courseware\Instance; use Courseware\StructuralElement; +use Courseware\StructuralElementComment; +use Courseware\StructuralElementFeedback; use Courseware\Task; use Courseware\TaskFeedback; use Courseware\TaskGroup; @@ -81,7 +83,7 @@ class Authority } public static function canUpdateEditBlocker(User $user, $resource) - { + { $structural_element = null; if ($resource instanceof Block) { $structural_element = $resource->container->structural_element; @@ -268,6 +270,16 @@ class Authority return $resource->user_id === $user->id || self::canUpdateBlock($user, $resource->block); } + public static function canUpdateBlockFeedback(User $user, BlockFeedback $resource) + { + return self::canShowBlockFeedback($user, $resource); + } + + public static function canDeleteBlockFeedback(User $user, BlockFeedback $resource) + { + return self::canUpdateBlockFeedback($user, $resource); + } + public static function canUploadStructuralElementsImage(User $user, StructuralElement $resource) { return self::canUpdateStructuralElement($user, $resource); @@ -306,12 +318,12 @@ class Authority public static function canDeleteTask(User $user, Task $resource): bool { - return self::canCreateTasks($user, $resource['structural_element']); + return self::canCreateTasks($user, $resource->structural_element); } public static function canCreateTaskFeedback(User $user, Task $resource): bool { - return self::canCreateTasks($user, $resource['structural_element']); + return self::canCreateTasks($user, $resource->structural_element); } public static function canShowTaskFeedback(User $user, Task $resource): bool @@ -337,7 +349,7 @@ class Authority public static function canShowStructuralElementComment(User $user, StructuralElementComment $resource) { - return self::canShowStructuralElement($user, $resource); + return self::canShowStructuralElement($user, $resource->structural_element); } public static function canCreateStructuralElementComment(User $user, StructuralElement $resource) @@ -392,7 +404,7 @@ class Authority public static function canShowStructuralElementFeedback(User $user, StructuralElementFeedback $resource) { - return $resource->user_id === $user->id || self::canUpdateStructuralElement($resource->structural_element); + return $resource->user_id === $user->id || self::canUpdateStructuralElement($user, $resource->structural_element); } public static function canDeleteStructuralElementFeedback(User $user, StructuralElementComment $resource) diff --git a/lib/classes/JsonApi/Routes/Courseware/ContainersUpdate.php b/lib/classes/JsonApi/Routes/Courseware/ContainersUpdate.php index 77d3d2c75b293db36cfdadb713cd5099d1b2e637..219395d2209930a09441e6894fc5cf729a0903cb 100755 --- a/lib/classes/JsonApi/Routes/Courseware/ContainersUpdate.php +++ b/lib/classes/JsonApi/Routes/Courseware/ContainersUpdate.php @@ -5,6 +5,7 @@ namespace JsonApi\Routes\Courseware; use Courseware\Container; use JsonApi\Errors\AuthorizationFailedException; use JsonApi\Errors\RecordNotFoundException; +use JsonApi\Errors\UnprocessableEntityException; use JsonApi\JsonApiController; use JsonApi\Routes\ValidationTrait; use JsonApi\Schemas\Courseware\Container as ContainerSchema; diff --git a/lib/classes/JsonApi/Routes/Courseware/Rel/UsersBookmarkedStructuralElements.php b/lib/classes/JsonApi/Routes/Courseware/Rel/UsersBookmarkedStructuralElements.php index 7f05c66a64880882404dd07ed938cdea95d40412..cfe487d66523a12f928fdac8965a01ff92a25a80 100755 --- a/lib/classes/JsonApi/Routes/Courseware/Rel/UsersBookmarkedStructuralElements.php +++ b/lib/classes/JsonApi/Routes/Courseware/Rel/UsersBookmarkedStructuralElements.php @@ -3,11 +3,8 @@ namespace JsonApi\Routes\Courseware\Rel; use Courseware\Bookmark; -use Courseware\Instance; use Courseware\StructuralElement; use JsonApi\Errors\AuthorizationFailedException; -use JsonApi\Errors\BadRequestException; -use JsonApi\Errors\ConflictException; use JsonApi\Errors\RecordNotFoundException; use JsonApi\Routes\Courseware\Authority; use JsonApi\Routes\Courseware\CoursewareInstancesHelper; diff --git a/lib/classes/JsonApi/Routes/Courseware/StructuralElementsImageUpload.php b/lib/classes/JsonApi/Routes/Courseware/StructuralElementsImageUpload.php index 070ca6c842c287bb9416066c352520a4d7f6a358..3f85d9bb3cf0a60ed90fbb8562190182e1af7c28 100755 --- a/lib/classes/JsonApi/Routes/Courseware/StructuralElementsImageUpload.php +++ b/lib/classes/JsonApi/Routes/Courseware/StructuralElementsImageUpload.php @@ -6,6 +6,7 @@ use Courseware\Filesystem\PublicFolder; use Courseware\StructuralElement; use JsonApi\Errors\AuthorizationFailedException; use JsonApi\Errors\BadRequestException; +use JsonApi\Errors\InternalServerError; use JsonApi\Errors\RecordNotFoundException; use JsonApi\NonJsonApiController; use JsonApi\Routes\Files\RoutesHelperTrait as FilesRoutesHelper; diff --git a/lib/classes/JsonApi/Routes/Courseware/TemplatesIndex.php b/lib/classes/JsonApi/Routes/Courseware/TemplatesIndex.php index 1831bb7ef299ca017236b5f2bdace45c18f34582..9345a59fcc1085320e9edbf267c90d0c25e395e0 100755 --- a/lib/classes/JsonApi/Routes/Courseware/TemplatesIndex.php +++ b/lib/classes/JsonApi/Routes/Courseware/TemplatesIndex.php @@ -3,7 +3,7 @@ namespace JsonApi\Routes\Courseware; use Courseware\Template; -use JsonApi\Errors\RecordNotFoundException; +use JsonApi\Errors\AuthorizationFailedException; use JsonApi\JsonApiController; use Psr\Http\Message\ResponseInterface as Response; use Psr\Http\Message\ServerRequestInterface as Request; @@ -29,4 +29,4 @@ class TemplatesIndex extends JsonApiController return $this->getContentResponse($resources); } -} \ No newline at end of file +} diff --git a/lib/classes/JsonApi/Routes/Events/UserEventsIcal.php b/lib/classes/JsonApi/Routes/Events/UserEventsIcal.php index 335f90556a98e6c7e0b6276361df09216eba9275..c8080c46803add729bb99fc62535f270da4b4de9 100644 --- a/lib/classes/JsonApi/Routes/Events/UserEventsIcal.php +++ b/lib/classes/JsonApi/Routes/Events/UserEventsIcal.php @@ -23,8 +23,9 @@ class UserEventsIcal extends NonJsonApiController // damit unsichtbare Nutzer nicht ermittelt werden können throw new RecordNotFoundException(); } - $calender_writer = new \CalendarWriterICalendar(); - $export = new \CalendarExport($calender_writer); + + $writer = new \CalendarWriterICalendar(); + $export = new \CalendarExport($writer); $export->exportFromDatabase($observedUser->id, 0, 2114377200, ['CalendarEvent', 'CourseEvent', 'CourseCancelledEvent']); if ($GLOBALS['_calendar_error']->getMaxStatus(\ErrorHandler::ERROR_CRITICAL)) { throw new InternalServerError(); diff --git a/lib/classes/JsonApi/Routes/Files/FileRefsUpdate.php b/lib/classes/JsonApi/Routes/Files/FileRefsUpdate.php index 08126f435899e0cce4389d904124827a9451561a..27ddabab7b1f7653a438574ea8ad12ff0642a076 100644 --- a/lib/classes/JsonApi/Routes/Files/FileRefsUpdate.php +++ b/lib/classes/JsonApi/Routes/Files/FileRefsUpdate.php @@ -6,8 +6,8 @@ use JsonApi\Errors\AuthorizationFailedException; use JsonApi\Errors\RecordNotFoundException; use JsonApi\JsonApiController; use JsonApi\Routes\ValidationTrait; -use Neomerx\JsonApi\Document\Error; use Neomerx\JsonApi\Exceptions\JsonApiException; +use Neomerx\JsonApi\Schema\Error; use Psr\Http\Message\ServerRequestInterface as Request; use Psr\Http\Message\ResponseInterface as Response; @@ -61,7 +61,7 @@ class FileRefsUpdate extends JsonApiController if (!$result instanceof \FileRef) { throw new JsonApiException(array_map(function ($error) { - return new Error('Bad Request Error', null, 400, null, null, $error); + return new Error('Bad Request Error', null, null, null, 400, $error); }, $result), 400); } } diff --git a/lib/classes/JsonApi/Routes/Files/FoldersDelete.php b/lib/classes/JsonApi/Routes/Files/FoldersDelete.php index c383e02cb651f85884675f818fc647e8bbc5d5d6..2ed7e45b77a9757023eef5fd7d7723959710f27a 100644 --- a/lib/classes/JsonApi/Routes/Files/FoldersDelete.php +++ b/lib/classes/JsonApi/Routes/Files/FoldersDelete.php @@ -5,6 +5,7 @@ namespace JsonApi\Routes\Files; use Psr\Http\Message\ServerRequestInterface as Request; use Psr\Http\Message\ResponseInterface as Response; use JsonApi\Errors\AuthorizationFailedException; +use JsonApi\Errors\InternalServerError; use JsonApi\Errors\RecordNotFoundException; use JsonApi\JsonApiController; diff --git a/lib/classes/JsonApi/Routes/Files/RoutesHelperTrait.php b/lib/classes/JsonApi/Routes/Files/RoutesHelperTrait.php index 8122ec59893752417cd4ff675c589b4c62861ae8..cc8785ee72999d50a3935f7c126b220ece793061 100644 --- a/lib/classes/JsonApi/Routes/Files/RoutesHelperTrait.php +++ b/lib/classes/JsonApi/Routes/Files/RoutesHelperTrait.php @@ -4,6 +4,7 @@ namespace JsonApi\Routes\Files; use JsonApi\Errors\BadRequestException; use JsonApi\Errors\InternalServerError; +use JsonApi\Routes\ArrayHelperTrait; use JsonApi\Schemas\FileRef as FileRefSchema; use JsonApi\Schemas\Folder as FolderSchema; use JsonApi\Schemas\ContentTermsOfUse as ContentTermsOfUseSchema; @@ -13,28 +14,33 @@ use Slim\Psr7\UploadedFile; trait RoutesHelperTrait { + use ArrayHelperTrait { + arrayHas as array_has; + arrayGet as array_get; + } + protected function validateResourceIdentifier($json, $type, $newResource = true) { - if (!self::arrayHas($json, 'data')) { + if (!self::array_has($json, 'data')) { return 'Missing `data` member at document´s top level.'; } // type - if (self::arrayGet($json, 'data.type') + if (self::array_get($json, 'data.type') !== $type ) { return 'Missing `type` member of document´s `data`.'; } // id - if ($newResource && self::arrayHas($json, 'data.id')) { + if ($newResource && self::array_has($json, 'data.id')) { return 'New document must not have an `id`.'; } } protected function validateFileRefResourceObject($json, \FileRef $fileRef = null) { - if (!self::arrayHas($json, 'data')) { + if (!self::array_has($json, 'data')) { return 'Missing `data` member at document´s top level.'; } @@ -49,12 +55,12 @@ trait RoutesHelperTrait } // Relationship: terms-of-use - if (self::arrayHas($json, 'data.relationships.terms-of-use')) { - $license = self::arrayGet($json, 'data.relationships.terms-of-use'); + if (self::array_has($json, 'data.relationships.terms-of-use')) { + $license = self::array_get($json, 'data.relationships.terms-of-use'); if ($err = $this->validateResourceIdentifier($license, ContentTermsOfUseSchema::TYPE, false)) { return $err; } - $termsId = self::arrayGet($license, 'data.id'); + $termsId = self::array_get($license, 'data.id'); if (!\ContentTermsOfUse::find($termsId)) { return 'Invalid `terms-of-use` specified.'; } @@ -66,12 +72,12 @@ trait RoutesHelperTrait private function validateFileRefAttributes($json) { // Attributes - if (!self::arrayHas($json, 'data.attributes')) { + if (!self::array_has($json, 'data.attributes')) { return 'Missing `attributes` member of document´s `data`.'; } // Attribute: name - $name = self::arrayGet($json, 'data.attributes.name'); + $name = self::array_get($json, 'data.attributes.name'); if (!$name || 0 === mb_strlen(trim($name))) { return '`name` must not be empty.'; } @@ -81,24 +87,24 @@ trait RoutesHelperTrait { // Attributes needed to create a new folder if (!$folder) { - if (!self::arrayHas($json, 'data.attributes')) { + if (!self::array_has($json, 'data.attributes')) { return 'Missing `attributes` member of document´s `data`.'; } - if (!self::arrayHas($json, 'data.attributes.name')) { + if (!self::array_has($json, 'data.attributes.name')) { return 'Missing `data.name`.'; } } // Attribute: name must not be empty if present - if (self::arrayHas($json, 'data.attributes.name') - && !mb_strlen(trim(self::arrayGet($json, 'data.attributes.name', '')))) { + if (self::array_has($json, 'data.attributes.name') + && !mb_strlen(trim(self::array_get($json, 'data.attributes.name', '')))) { return '`name` must not be empty.'; } // Relationship: parent - if (self::arrayHas($json, 'data.relationships.parent')) { - $parent = self::arrayGet($json, 'data.relationships.parent'); + if (self::array_has($json, 'data.relationships.parent')) { + $parent = self::array_get($json, 'data.relationships.parent'); if ($err = $this->validateResourceIdentifier($parent, FolderSchema::TYPE, false)) { return $err; } diff --git a/lib/classes/JsonApi/Routes/Forum/ForumCategoriesDelete.php b/lib/classes/JsonApi/Routes/Forum/ForumCategoriesDelete.php index 8cd431b9bf72b8494f5d14f6190ceb29d26abd52..2441a1f88b0b8df2ef4f03cec831b413d7057c89 100644 --- a/lib/classes/JsonApi/Routes/Forum/ForumCategoriesDelete.php +++ b/lib/classes/JsonApi/Routes/Forum/ForumCategoriesDelete.php @@ -2,6 +2,7 @@ namespace JsonApi\Routes\Forum; +use JsonApi\Errors\AuthorizationFailedException; use JsonApi\Errors\RecordNotFoundException; use JsonApi\JsonApiController; use JsonApi\Models\ForumCat; diff --git a/lib/classes/JsonApi/Routes/Forum/ForumEntriesDelete.php b/lib/classes/JsonApi/Routes/Forum/ForumEntriesDelete.php index 319510fd269df9bfaf6a025100323fd064f74f6e..41de02d0488c62356616d8aaf4dfe7ec727ee021 100644 --- a/lib/classes/JsonApi/Routes/Forum/ForumEntriesDelete.php +++ b/lib/classes/JsonApi/Routes/Forum/ForumEntriesDelete.php @@ -4,6 +4,7 @@ namespace JsonApi\Routes\Forum; use Psr\Http\Message\ServerRequestInterface as Request; use Psr\Http\Message\ResponseInterface as Response; +use JsonApi\Errors\AuthorizationFailedException; use JsonApi\Errors\RecordNotFoundException; use JsonApi\JsonApiController; use JsonApi\Models\ForumEntry; diff --git a/lib/classes/JsonApi/Routes/News/ByCurrentUser.php b/lib/classes/JsonApi/Routes/News/ByCurrentUser.php index d6fe3d6f2589c97379c33cf49bf64d0b251b4aca..1c858b39e60132fe02f9402690a3f3257ba72fb3 100644 --- a/lib/classes/JsonApi/Routes/News/ByCurrentUser.php +++ b/lib/classes/JsonApi/Routes/News/ByCurrentUser.php @@ -4,6 +4,7 @@ namespace JsonApi\Routes\News; use Psr\Http\Message\ServerRequestInterface as Request; use Psr\Http\Message\ResponseInterface as Response; +use JsonApi\Errors\AuthorizationFailedException; use JsonApi\Errors\RecordNotFoundException; use JsonApi\JsonApiController; diff --git a/lib/classes/JsonApi/Routes/News/ByUserIndex.php b/lib/classes/JsonApi/Routes/News/ByUserIndex.php index f460a19fe6be793d23d75f4046747b7b0b334e17..3d1574d66438844b96066a064de2b76956b5221b 100644 --- a/lib/classes/JsonApi/Routes/News/ByUserIndex.php +++ b/lib/classes/JsonApi/Routes/News/ByUserIndex.php @@ -4,6 +4,7 @@ namespace JsonApi\Routes\News; use Psr\Http\Message\ServerRequestInterface as Request; use Psr\Http\Message\ResponseInterface as Response; +use JsonApi\Errors\AuthorizationFailedException; use JsonApi\Errors\RecordNotFoundException; use JsonApi\JsonApiController; diff --git a/lib/classes/JsonApi/Routes/News/CommentsIndex.php b/lib/classes/JsonApi/Routes/News/CommentsIndex.php index d25319f4783a225cc29dedc4a5856d9bad4564df..581ba3bf36457c1aee2817da8e0ea7dbbdd0f790 100644 --- a/lib/classes/JsonApi/Routes/News/CommentsIndex.php +++ b/lib/classes/JsonApi/Routes/News/CommentsIndex.php @@ -4,6 +4,7 @@ namespace JsonApi\Routes\News; use Psr\Http\Message\ServerRequestInterface as Request; use Psr\Http\Message\ResponseInterface as Response; +use JsonApi\Errors\AuthorizationFailedException; use JsonApi\Errors\RecordNotFoundException; use JsonApi\JsonApiController; diff --git a/lib/classes/JsonApi/Routes/News/NewsUpdate.php b/lib/classes/JsonApi/Routes/News/NewsUpdate.php index 425929dbf09a382cc40426e113eefdbffb820685..269c4501e01212e61a6faaa26ea24014ffbfc754 100644 --- a/lib/classes/JsonApi/Routes/News/NewsUpdate.php +++ b/lib/classes/JsonApi/Routes/News/NewsUpdate.php @@ -3,6 +3,7 @@ namespace JsonApi\Routes\News; use JsonApi\Errors\AuthorizationFailedException; +use JsonApi\Errors\InternalServerError; use JsonApi\Errors\RecordNotFoundException; use JsonApi\JsonApiController; use JsonApi\Routes\ValidationTrait; diff --git a/lib/classes/JsonApi/Routes/News/Rel/Ranges.php b/lib/classes/JsonApi/Routes/News/Rel/Ranges.php index 3f90dcdcf4d25568f625c22813b18ef377c8cfde..ceeddcace1bc8319570f674142bca796b3f3c28f 100644 --- a/lib/classes/JsonApi/Routes/News/Rel/Ranges.php +++ b/lib/classes/JsonApi/Routes/News/Rel/Ranges.php @@ -189,7 +189,7 @@ class Ranges extends RelationshipsController private function getGlobalRange() { - return new \JsonApi\Model\Studip(); + return new \JsonApi\Models\Studip(); } private function addRanges(\StudipNews $news, array $ranges) diff --git a/lib/classes/JsonApi/Routes/News/StudipNewsDatesHelper.php b/lib/classes/JsonApi/Routes/News/StudipNewsDatesHelper.php index 876baf67b640d8a8331dc011d8ddedc771e54236..cfb51585968c8141d5846623aa6ae23d6768f22a 100644 --- a/lib/classes/JsonApi/Routes/News/StudipNewsDatesHelper.php +++ b/lib/classes/JsonApi/Routes/News/StudipNewsDatesHelper.php @@ -2,6 +2,7 @@ namespace JsonApi\Routes\News; +use DateTime; use JsonApi\Routes\TimestampTrait; trait StudipNewsDatesHelper diff --git a/lib/classes/JsonApi/Routes/News/UserNewsCreate.php b/lib/classes/JsonApi/Routes/News/UserNewsCreate.php index 84ea30efb50a94dee11e396a1dedc923d49dab3d..7580202504a59dd065cb8cc0770dc65d5c9bec02 100644 --- a/lib/classes/JsonApi/Routes/News/UserNewsCreate.php +++ b/lib/classes/JsonApi/Routes/News/UserNewsCreate.php @@ -6,6 +6,7 @@ use Psr\Http\Message\ServerRequestInterface as Request; use Psr\Http\Message\ResponseInterface as Response; use JsonApi\Errors\AuthorizationFailedException; use JsonApi\Errors\InternalServerError; +use JsonApi\Errors\RecordNotFoundException; /** * Create a news where the range is the user himself. diff --git a/lib/classes/JsonApi/Routes/Wiki/WikiCreate.php b/lib/classes/JsonApi/Routes/Wiki/WikiCreate.php index d3eb1671299422c0cd4c6b7ab801e23fd4bb5461..79a8a558fd096e6102372a3dc0ef11d9702b6e53 100644 --- a/lib/classes/JsonApi/Routes/Wiki/WikiCreate.php +++ b/lib/classes/JsonApi/Routes/Wiki/WikiCreate.php @@ -4,8 +4,10 @@ namespace JsonApi\Routes\Wiki; use Psr\Http\Message\ServerRequestInterface as Request; use Psr\Http\Message\ResponseInterface as Response; -use JsonApi\Errors\ConflictError; +use JsonApi\Errors\AuthorizationFailedException; +use JsonApi\Errors\ConflictException; use JsonApi\Errors\InternalServerError; +use JsonApi\Errors\RecordNotFoundException; use JsonApi\JsonApiController; use JsonApi\Routes\ValidationTrait; use JsonApi\Schemas\WikiPage; @@ -38,7 +40,7 @@ class WikiCreate extends JsonApiController $keyword = self::arrayGet($json, 'data.attributes.keyword'); if (\WikiPage::findLatestPage($range->id, $keyword)) { - throw new ConflictError('Wiki page already exists.'); + throw new ConflictException('Wiki page already exists.'); } if (!$wiki = $this->createWikiFromJSON($user, $range, $json)) { diff --git a/lib/classes/JsonApi/Routes/Wiki/WikiDelete.php b/lib/classes/JsonApi/Routes/Wiki/WikiDelete.php index 6573e7f34ff931bdc5079c3a4d666178e8e2477d..709c468692e2315920b172b9de81e9d40e4406e4 100644 --- a/lib/classes/JsonApi/Routes/Wiki/WikiDelete.php +++ b/lib/classes/JsonApi/Routes/Wiki/WikiDelete.php @@ -4,6 +4,7 @@ namespace JsonApi\Routes\Wiki; use Psr\Http\Message\ServerRequestInterface as Request; use Psr\Http\Message\ResponseInterface as Response; +use JsonApi\Errors\AuthorizationFailedException; use JsonApi\JsonApiController; require_once 'lib/wiki.inc.php'; diff --git a/lib/classes/JsonApi/Schemas/StudipNews.php b/lib/classes/JsonApi/Schemas/StudipNews.php index 1bf766aee4ead80ce1b1b6c0c9720ae59d42a752..d9504ad4f54385fb0c2235cbc21257774ad038fe 100644 --- a/lib/classes/JsonApi/Schemas/StudipNews.php +++ b/lib/classes/JsonApi/Schemas/StudipNews.php @@ -113,7 +113,7 @@ class StudipNews extends SchemaProvider return $news->news_ranges->map(function ($range) use ($include) { switch ($range->type) { case 'global': - return new \Jsonapi\Models\Studip(); + return new \JsonApi\Models\Studip(); case 'sem': return $include