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\Localization\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    public function readResponse(RequestInterface $request, ResponseInterface $response, array $args): ResponseInterface
30    {
31        $requestErrors = ValidationService::validateServerGetRequest($request);
32        if (!empty($requestErrors['errors'])) {
33            return $this->createJsonResponse(
34                $response,
35                $requestErrors,
36                ErrorMessages::get('invalidRequest', $this->language)['statusCode']
37            );
38        }
39
40        $result = $this->service->getServicesAndOfficesList($this->showUnpublished);
41
42        return is_array($result) && isset($result['errors'])
43            ? $this->createJsonResponse(
44                $response,
45                $result,
46                ErrorMessages::getHighestStatusCode($result['errors'])
47            )
48            : $this->createJsonResponse($response, $result->toArray(), 200);
49    }
50}