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

RoutesDelegator   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 32
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
dl 0
loc 32
ccs 18
cts 18
cp 1
rs 10
c 0
b 0
f 0
wmc 1
lcom 0
cbo 1

1 Method

Rating   Name   Duplication   Size   Complexity  
B __invoke() 0 29 1
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