Completed
Push — master ( 287393...7ff50d )
by Raffael
18:27 queued 14:12
created

Balloon.App.Api/Constructor/Http.php$0   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 8
Duplicated Lines 0 %

Coupling/Cohesion

Dependencies 1

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 3
cbo 1
dl 0
loc 8
ccs 0
cts 6
cp 0
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
/**
6
 * balloon
7
 *
8
 * @copyright   Copryright (c) 2012-2019 gyselroth GmbH (https://gyselroth.com)
9
 * @license     GPL-3.0 https://opensource.org/licenses/GPL-3.0
10
 */
11
12
namespace Balloon\App\Api\Constructor;
13
14
use Balloon\App\Api\v1;
15
use Balloon\App\Api\v2;
16
use Balloon\Hook;
17
use Balloon\Hook\AbstractHook;
18
use Micro\Auth\Adapter\None as AuthNone;
19
use Micro\Auth\Auth;
20
use Micro\Http\Router;
21
use Micro\Http\Router\Route;
22
23
class Http
24
{
25
    /**
26
     * Router.
27
     *
28
     * @var Router
29
     */
30
    protected $router;
31
32
    /**
33
     * Hook.
34
     *
35
     * @var Hook
36
     */
37
    protected $hook;
38
39
    /**
40
     * Constructor.
41
     */
42
    public function __construct(Router $router, Hook $hook)
43
    {
44
        $router
45
            ->appendRoute(new Route('/api/v2/users/{id:#([0-9a-z]{24})#}(/|\z)', v2\Users::class))
46
            ->appendRoute(new Route('/api/v2/users(/|\z)', v2\Users::class))
47
            ->appendRoute(new Route('/api/v2/groups/{id:#([0-9a-z]{24})#}(/|\z)', v2\Groups::class))
48
            ->appendRoute(new Route('/api/v2/groups(/|\z)', v2\Groups::class))
49
            ->appendRoute(new Route('/api/v2/files/{id:#([0-9a-z]{24})#}(/|\z)', v2\Files::class))
50
            ->appendRoute(new Route('/api/v2/files(/|\z)', v2\Files::class))
51
            ->appendRoute(new Route('/api/v2/collections/{id:#([0-9a-z]{24})#}(/|\z)', v2\Collections::class))
52
            ->appendRoute(new Route('/api/v2/collections(/|\z)', v2\Collections::class))
53
            ->appendRoute(new Route('/api/v2/nodes/{id:#([0-9a-z]{24})#}(/|\z)', v2\Nodes::class))
54
            ->appendRoute(new Route('/api/v2/nodes(/|\z)', v2\Nodes::class))
55
            ->appendRoute(new Route('/api/v2$', v2\Api::class))
56
            ->appendRoute(new Route('/api/v2', v2\Api::class))
57
            ->appendRoute(new Route('/api$', v2\Api::class))
58
            ->appendRoute(new Route('/api/v1/user/{uid:#([0-9a-z]{24})#}', v1\User::class))
59
            ->appendRoute(new Route('/api/v1/user', v1\User::class))
60
            ->appendRoute(new Route('/api/v1/resource', v1\Resource::class))
61
            ->appendRoute(new Route('/api/v1/file/{id:#([0-9a-z]{24})#}', v1\File::class))
62
            ->appendRoute(new Route('/api/v1/file', v1\File::class))
63
            ->appendRoute(new Route('/api/v1/collection/{id:#([0-9a-z]{24})#}', v1\Collection::class))
64
            ->appendRoute(new Route('/api/v1/collection', v1\Collection::class))
65
            ->appendRoute(new Route('/api/v1/node/{id:#([0-9a-z]{24})#}', v1\Node::class))
66
            ->appendRoute(new Route('/api/v1/node', v1\Node::class))
67
            ->appendRoute(new Route('/api/v1$', v1\Api::class))
68
            ->appendRoute(new Route('/api/v1', v1\Api::class))
69
            ->appendRoute(new Route('^$', v2\Api::class));
70
71
        $hook->injectHook(new class() extends AbstractHook {
72
            public function preAuthentication(Auth $auth): void
73
            {
74
                if ('/index.php/api' === $_SERVER['ORIG_SCRIPT_NAME'] || '/index.php/api/v2' === $_SERVER['ORIG_SCRIPT_NAME']) {
75
                    $auth->injectAdapter(new AuthNone());
76
                }
77
            }
78
        });
79
80
        return true;
0 ignored issues
show
Bug introduced by
Constructors do not have meaningful return values, anything that is returned from here is discarded. Are you sure this is correct?
Loading history...
81
    }
82
}
83