Passed
Branch master (b0d099)
by Markus
03:49
created

Handler   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 5

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
dl 0
loc 37
ccs 0
cts 19
cp 0
rs 10
c 0
b 0
f 0
wmc 7
lcom 1
cbo 5

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
B handle() 0 27 6
1
<?php
2
3
// Starting point, handle incoming request and hand over to more specific handler
4
5
namespace SSpkS;
6
7
use \SSpkS\Handler\BrowserAllPackagesListHandler;
8
use \SSpkS\Handler\BrowserDeviceListHandler;
9
use \SSpkS\Handler\BrowserPackageListHandler;
10
use \SSpkS\Handler\NotFoundHandler;
11
use \SSpkS\Handler\SynologyHandler;
12
13
class Handler
14
{
15
    private $config;
16
17
    public function __construct(\SSpkS\Config $config)
18
    {
19
        $this->config = $config;
20
    }
21
22
    public function handle()
23
    {
24
        // TODO: Probably walk through all known handlers and query them whether they're
25
        //       responsible/capable for answering the request or not. Take the best match.
26
27
        if (isset($_REQUEST['unique']) && substr($_REQUEST['unique'], 0, 8) == 'synology') {
28
            $handler = new SynologyHandler($this->config);
29
        } elseif ($_SERVER['REQUEST_METHOD'] == 'GET') {
30
            // GET-request, probably browser --> show HTML
31
            $arch     = trim($_GET['arch']);
32
            $fullList = trim($_GET['fulllist']);
33
34
            if ($arch) {
35
                // Architecture is set --> show packages for that arch
36
                $handler = new BrowserPackageListHandler($this->config);
37
            } elseif ($fullList) {
38
                // No architecture, but full list of packages requested --> show simple list
39
                $handler = new BrowserAllPackagesListHandler($this->config);
40
            } else {
41
                // Nothing specific requested --> show models overview
42
                $handler = new BrowserDeviceListHandler($this->config);
43
            }
44
        } else {
45
            $handler = new NotFoundHandler($this->config);
46
        }
47
        $handler->handle();
48
    }
49
}
50