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