Completed
Push — master ( 2ef37c...52cad6 )
by Oleg
02:13
created

RoutesDelegator::__invoke()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 29
Code Lines 20

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 18
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 20
nc 1
nop 3
dl 0
loc 29
ccs 18
cts 18
cp 1
crap 1
rs 8.8571
c 0
b 0
f 0
1
<?php
2
declare(strict_types=1);
3
4
namespace SlayerBirden\DataFlowServer\Domain\Factory;
5
6
use Psr\Container\ContainerInterface;
7
use SlayerBirden\DataFlowServer\Domain\Controller\AddUserAction;
8
use SlayerBirden\DataFlowServer\Domain\Controller\DeleteUserAction;
9
use SlayerBirden\DataFlowServer\Domain\Controller\GetUserAction;
10
use SlayerBirden\DataFlowServer\Domain\Controller\GetUsersAction;
11
use SlayerBirden\DataFlowServer\Domain\Controller\UpdateUserAction;
12
use Zend\Expressive\Application;
13
use Zend\Expressive\Helper\BodyParams\BodyParamsMiddleware;
14
15
class RoutesDelegator
16
{
17 32
    public function __invoke(ContainerInterface $container, string $serviceName, callable $callback)
18
    {
19
        /** @var $app Application */
20 32
        $app = $callback();
21
22 32
        $app->get('/user/{id:\d+}', [
23 32
            GetUserAction::class
24 32
        ], 'get_user');
25
26 32
        $app->get('/users', [
27 32
            GetUsersAction::class
28 32
        ], 'get_users');
29
30 32
        $app->post('/user', [
31 32
            BodyParamsMiddleware::class,
32
            AddUserAction::class
33 32
        ], 'add_user');
34
35 32
        $app->put('/user/{id:\d+}', [
36 32
            BodyParamsMiddleware::class,
37
            UpdateUserAction::class
38 32
        ], 'update_user');
39
40 32
        $app->delete('/user/{id:\d+}', [
41 32
            DeleteUserAction::class
42 32
        ], 'delete_user');
43
44 32
        return $app;
45
    }
46
}
47