ApiServiceProvider   C
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 46
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 26

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 46
rs 5
wmc 1
lcom 0
cbo 26

1 Method

Rating   Name   Duplication   Size   Complexity  
B register() 0 36 1
1
<?php
2
3
/*
4
 * This file is part of Jitamin.
5
 *
6
 * Copyright (C) Jitamin Team
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
namespace Jitamin\Providers;
13
14
use Jitamin\Http\Controllers\Api\ActionController;
15
use Jitamin\Http\Controllers\Api\AppController;
16
use Jitamin\Http\Controllers\Api\BoardController;
17
use Jitamin\Http\Controllers\Api\CategoryController;
18
use Jitamin\Http\Controllers\Api\ColumnController;
19
use Jitamin\Http\Controllers\Api\CommentController;
20
use Jitamin\Http\Controllers\Api\GroupController;
21
use Jitamin\Http\Controllers\Api\GroupMemberController;
22
use Jitamin\Http\Controllers\Api\LinkController;
23
use Jitamin\Http\Controllers\Api\MeController;
24
use Jitamin\Http\Controllers\Api\ProjectController;
25
use Jitamin\Http\Controllers\Api\ProjectFileController;
26
use Jitamin\Http\Controllers\Api\ProjectPermissionController;
27
use Jitamin\Http\Controllers\Api\SubtaskController;
28
use Jitamin\Http\Controllers\Api\SubtaskTimeTrackingController;
29
use Jitamin\Http\Controllers\Api\SwimlaneController;
30
use Jitamin\Http\Controllers\Api\TaskController;
31
use Jitamin\Http\Controllers\Api\TaskExternalLinkController;
32
use Jitamin\Http\Controllers\Api\TaskFileController;
33
use Jitamin\Http\Controllers\Api\TaskLinkController;
34
use Jitamin\Http\Controllers\Api\TaskMetadataController;
35
use Jitamin\Http\Controllers\Api\UserController;
36
use Jitamin\Http\Middleware\ApiAuthenticationMiddleware;
37
use JsonRPC\Server;
38
use Pimple\Container;
39
use Pimple\ServiceProviderInterface;
40
41
/**
42
 * Class of Api Service Provider.
43
 */
44
class ApiServiceProvider implements ServiceProviderInterface
45
{
46
    /**
47
     * Registers services on the given container.
48
     *
49
     * @param Container $container
50
     *
51
     * @return Container
52
     */
53
    public function register(Container $container)
54
    {
55
        $server = new Server();
56
        $server->setAuthenticationHeader(API_AUTHENTICATION_HEADER);
57
        $server->getMiddlewareHandler()
58
            ->withMiddleware(new ApiAuthenticationMiddleware($container));
59
60
        $server->getProcedureHandler()
61
            ->withObject(new MeController($container))
62
            ->withObject(new ActionController($container))
63
            ->withObject(new AppController($container))
64
            ->withObject(new BoardController($container))
65
            ->withObject(new ColumnController($container))
66
            ->withObject(new CategoryController($container))
67
            ->withObject(new CommentController($container))
68
            ->withObject(new TaskFileController($container))
69
            ->withObject(new ProjectFileController($container))
70
            ->withObject(new LinkController($container))
71
            ->withObject(new ProjectController($container))
72
            ->withObject(new ProjectPermissionController($container))
73
            ->withObject(new SubtaskController($container))
74
            ->withObject(new SubtaskTimeTrackingController($container))
75
            ->withObject(new SwimlaneController($container))
76
            ->withObject(new TaskController($container))
77
            ->withObject(new TaskLinkController($container))
78
            ->withObject(new TaskExternalLinkController($container))
79
            ->withObject(new TaskMetadataController($container))
80
            ->withObject(new UserController($container))
81
            ->withObject(new GroupController($container))
82
            ->withObject(new GroupMemberController($container))
83
            ->withBeforeMethod('beforeAction');
84
85
        $container['api'] = $server;
86
87
        return $container;
88
    }
89
}
90