Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
41.18% covered (danger)
41.18%
7 / 17
50.00% covered (danger)
50.00%
1 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
OfficesServicesRelationsController
41.18% covered (danger)
41.18%
7 / 17
50.00% covered (danger)
50.00%
1 / 2
10.09
0.00% covered (danger)
0.00%
0 / 1
 __construct
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 readResponse
33.33% covered (danger)
33.33%
5 / 15
0.00% covered (danger)
0.00%
0 / 1
8.74
1<?php
2
3declare(strict_types=1);
4
5namespace BO\Zmscitizenapi\Controllers\Office;
6
7use App;
8use BO\Zmscitizenapi\BaseController;
9use BO\Zmscitizenapi\Utils\ErrorMessages;
10use BO\Zmscitizenapi\Services\Office\OfficesServicesRelationsService;
11use BO\Zmscitizenapi\Services\Core\ValidationService;
12use Psr\Http\Message\RequestInterface;
13use Psr\Http\Message\ResponseInterface;
14use BO\Zmscitizenapi\Controllers\UnpublishedAccessTrait;
15
16class OfficesServicesRelationsController extends BaseController
17{
18    use UnpublishedAccessTrait;
19
20    private OfficesServicesRelationsService $service;
21    private bool $showUnpublished;
22
23    public function __construct()
24    {
25        $this->service = new OfficesServicesRelationsService();
26        $this->initializeUnpublishedAccess();
27    }
28
29    #[\Override]
30    public function readResponse(RequestInterface $request, ResponseInterface $response, array $args): ResponseInterface
31    {
32        $requestErrors = ValidationService::validateServerGetRequest($request);
33        if (!empty($requestErrors['errors'])) {
34            return $this->createJsonResponse(
35                $response,
36                $requestErrors,
37                ErrorMessages::get('invalidRequest')['statusCode']
38            );
39        }
40
41        $result = $this->service->getServicesAndOfficesList($this->showUnpublished);
42
43        return is_array($result) && isset($result['errors'])
44            ? $this->createJsonResponse(
45                $response,
46                $result,
47                ErrorMessages::getHighestStatusCode($result['errors'])
48            )
49            : $this->createJsonResponse($response, $result->toArray(), 200);
50    }
51}