diff options
Diffstat (limited to 'lib/classes/JsonApi/Routes/Courseware/CustomFilesDelete.php')
| -rw-r--r-- | lib/classes/JsonApi/Routes/Courseware/CustomFilesDelete.php | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/lib/classes/JsonApi/Routes/Courseware/CustomFilesDelete.php b/lib/classes/JsonApi/Routes/Courseware/CustomFilesDelete.php new file mode 100644 index 0000000..f7e005d --- /dev/null +++ b/lib/classes/JsonApi/Routes/Courseware/CustomFilesDelete.php @@ -0,0 +1,36 @@ +<?php + +namespace JsonApi\Routes\Courseware; + +use Courseware\Block; +use JsonApi\Routes\Files\RoutesHelperTrait; +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; + +/** + * Create a block in a container. + */ +class CustomFilesDelete extends JsonApiController +{ + use RoutesHelperTrait; + + /** + * @SuppressWarnings(PHPMD.UnusedFormalParameter) + */ + public function __invoke(Request $request, Response $response, $args) + { + if (!($resource = Block::find($args['id']))) { + throw new RecordNotFoundException(); + } + + if (!Authority::canUpdateBlock($user = $this->getUser($request), $resource)) { + throw new AuthorizationFailedException(); + } + + $resource->type->deleteCustomFile($args['id']); + return $response; + } +} |
