AddTask   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Test Coverage

Coverage 81.82%

Importance

Changes 0
Metric Value
wmc 7
dl 0
loc 28
rs 10
c 0
b 0
f 0
ccs 9
cts 11
cp 0.8182

1 Method

Rating   Name   Duplication   Size   Complexity  
B handle() 0 21 7
1
<?php
2
3
namespace JobQueue\Application\Http;
4
5
use JobQueue\Domain\Task\Profile;
6
use JobQueue\Domain\Task\Task;
7
use Psr\Http\Message\ResponseInterface;
8
use Psr\Http\Message\ServerRequestInterface;
9
use Zend\Diactoros\Response\JsonResponse;
10
11
final class AddTask extends BaseController
12
{
13
    /**
14
     *
15
     * @param ServerRequestInterface $request
16
     * @return ResponseInterface
17
     */
18 2
    public function handle(ServerRequestInterface $request): ResponseInterface
19
    {
20 2
        $body = $request->getParsedBody();
21
22 2
        if (!isset($body['profile']) or !$profile = new Profile($body['profile'])) {
23
            throw new \RuntimeException('Missing profile');
24
        }
25
26 2
        if (!isset($body['job']) or !$job = new $body['job']) {
27
            throw new \RuntimeException('Missing job');
28
        }
29
30 2
        $parameters = isset($body['parameters']) ? $body['parameters'] : [];
31
32 2
        $tags = isset($body['tags']) ? $body['tags'] : [];
33
34 2
        $task = new Task($profile, $job, $parameters, $tags);
35
36 2
        $this->queue->add($task);
37
38 2
        return new JsonResponse($task, 201);
39
    }
40
}
41