Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
58.82% covered (warning)
58.82%
10 / 17
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
AvailabilityDelete
58.82% covered (warning)
58.82%
10 / 17
0.00% covered (danger)
0.00%
0 / 1
5.12
0.00% covered (danger)
0.00%
0 / 1
 readResponse
58.82% covered (warning)
58.82%
10 / 17
0.00% covered (danger)
0.00%
0 / 1
5.12
1<?php
2
3/**
4 * @package ZMS API
5 * @copyright BerlinOnline Stadtportal GmbH & Co. KG
6 **/
7
8namespace BO\Zmsbackend\Availability\Api;
9
10use BO\Slim\Render;
11use BO\Zmsbackend\Availability\Service\Availability as AvailabilityRepository;
12use BO\Zmsbackend\Availability\Service\AvailabilityHistory as AvailabilityHistoryService;
13use BO\Zmsbackend\Helper\CalculateSlots as CalculateSlotsHelper;
14use Psr\Http\Message\RequestInterface;
15use Psr\Http\Message\ResponseInterface;
16use BO\Zmsentities\Availability as Entity;
17use App;
18
19class AvailabilityDelete extends \BO\Zmsbackend\Api\BaseController
20{
21    /**
22     * @SuppressWarnings(Param)
23     * @return ResponseInterface
24     */
25    #[\Override]
26    public function readResponse(
27        RequestInterface $request,
28        ResponseInterface $response,
29        array $args
30    ): ResponseInterface {
31        (new \BO\Zmsbackend\Helper\User($request))->checkPermissions('availability');
32        $repository = new AvailabilityRepository();
33        $entity = $repository->readEntity($args['id'], 2);
34
35        if ($entity->scope && $entity->hasId() && $repository->deleteEntity($entity->getId())) {
36            (new AvailabilityHistoryService())->writeDeleted($entity);
37            (new CalculateSlotsHelper(\App::DEBUG))->writePostProcessingByScope($entity->scope, \App::$now);
38            App::$log->info('Deleted availability', [
39                'id' => $entity->getId(),
40                'scope_id' => $entity->scope['id'],
41                'operation' => 'delete'
42            ]);
43        } else {
44            $entity = new Entity(['id' => $args['id']]);
45        }
46
47        $message = \BO\Zmsbackend\Api\Response\Message::create($request);
48        $message->data = $entity;
49
50        $response = Render::withLastModified($response, time(), '0');
51        $response = Render::withJson($response, $message->setUpdatedMetaData(), 200);
52        return $response;
53    }
54}