JobService::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 3
c 0
b 0
f 0
nc 1
nop 2
dl 0
loc 5
rs 9.4285
ccs 0
cts 4
cp 0
crap 2
1
<?php
2
3
namespace mcorten87\rabbitmq_api\services;
4
5
use GuzzleHttp\Client;
6
use GuzzleHttp\Exception\ClientException;
7
use mcorten87\rabbitmq_api\jobs\JobBase;
8
use mcorten87\rabbitmq_api\MqManagementFactory;
9
use mcorten87\rabbitmq_api\objects\JobResult;
10
11
class JobService
12
{
13
    /** @var MqManagementFactory */
14
    private $factory;
15
16
    /** @var Client */
17
    private $client;
18
19
    public function __construct(MqManagementFactory $factory, Client $client)
20
    {
21
        $this->factory = $factory;
22
        $this->client = $client;
23
    }
24
25
    /**
26
     * @param JobBase $job
27
     * @return JobResult
28
     * @throws \mcorten87\rabbitmq_api\exceptions\NoMapperForJob
29
     */
30 39
    public function execute(JobBase $job) : JobResult
31
    {
32 39
        $mapper = $this->factory->getJobMapper($job);
33
34 39
        $mapResult = $mapper->map($job);
35
36
        try {
37 39
            $res = $this->client->request(
38 39
                $mapResult->getMethod(),
39 39
                $this->factory->getConfig()->getUrl().$mapResult->getUrl(),
40 39
                $mapResult->getConfig()
41
            );
42
43 36
            return new JobResult($res);
44 7
        } catch (ClientException $e) {
45 7
            return JobResult::populateFromClientException($e);
46
        }
47
    }
48
}
49