Issues (40)

php-src/Application/Routes/CrudRoute.php (1 issue)

Severity
1
<?php
2
3
namespace kalanis\Restful\Application\Routes;
4
5
6
use kalanis\Restful\Application\IResourceRouter;
7
8
9
/**
10
 * Resource CrudRoute to simple resource creation
11
 * @package kalanis\Restful\Routes
12
 */
13 1
class CrudRoute extends ResourceRoute
14
{
15
16
    /** Presenter action names */
17
    public const ACTION_CREATE = 'create<Relation>';
18
    public const ACTION_READ = 'read<Relation>';
19
    public const ACTION_UPDATE = 'update<Relation>';
20
    public const ACTION_PATCH = 'patch<Relation>';
21
    public const ACTION_DELETE = 'delete<Relation>';
22
23
    /**
24
     * @param string $mask
25
     * @param array<string, string|array<string>>|string $metadata
26
     * @param int $flags
27
     */
28
    public function __construct(
29
        string       $mask,
30
        array|string $metadata = [],
31
        int          $flags = IResourceRouter::CRUD
32
    )
33
    {
34 1
        if (is_string($metadata) && 1 === count(explode(':', $metadata))) {
0 ignored issues
show
The condition is_string($metadata) is always false.
Loading history...
35 1
            $metadata .= ':default';
36
        }
37 1
        parent::__construct($mask, $metadata, $flags);
38 1
        $actions = [
39 1
            IResourceRouter::POST => self::ACTION_CREATE,
40 1
            IResourceRouter::GET => self::ACTION_READ,
41 1
            IResourceRouter::PUT => self::ACTION_UPDATE,
42 1
            IResourceRouter::PATCH => self::ACTION_PATCH,
43 1
            IResourceRouter::DELETE => self::ACTION_DELETE
44
        ];
45
46 1
        foreach ($actions as $resource => $action) {
47 1
            $this->actionDictionary[$resource] = $action;
48
        }
49 1
    }
50
}
51