Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 36
0.00% covered (danger)
0.00%
0 / 8
CRAP
0.00% covered (danger)
0.00%
0 / 1
TermineController
0.00% covered (danger)
0.00%
0 / 36
0.00% covered (danger)
0.00%
0 / 8
72
0.00% covered (danger)
0.00%
0 / 1
 termineList
0.00% covered (danger)
0.00%
0 / 5
0.00% covered (danger)
0.00%
0 / 1
2
 termineDetail
0.00% covered (danger)
0.00%
0 / 5
0.00% covered (danger)
0.00%
0 / 1
2
 terminLocationsList
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 1
2
 terminLocationDetail
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 1
2
 terminTemplatesList
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 1
2
 terminTemplateDetail
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 1
2
 termineICal
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 1
2
 termineListIcs
0.00% covered (danger)
0.00%
0 / 6
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3namespace Olz\Controller;
4
5use Olz\Termine\Components\OlzICal\OlzICal;
6use Olz\Termine\Components\OlzTerminDetail\OlzTerminDetail;
7use Olz\Termine\Components\OlzTermineList\OlzTermineList;
8use Olz\Termine\Components\OlzTerminLocationDetail\OlzTerminLocationDetail;
9use Olz\Termine\Components\OlzTerminLocationsList\OlzTerminLocationsList;
10use Olz\Termine\Components\OlzTerminTemplateDetail\OlzTerminTemplateDetail;
11use Olz\Termine\Components\OlzTerminTemplatesList\OlzTerminTemplatesList;
12use Olz\Utils\HttpUtils;
13use Psr\Log\LoggerInterface;
14use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
15use Symfony\Component\HttpFoundation\Request;
16use Symfony\Component\HttpFoundation\Response;
17use Symfony\Component\Routing\Annotation\Route;
18
19class TermineController extends AbstractController {
20    #[Route('/termine')]
21    public function termineList(
22        Request $request,
23        LoggerInterface $logger,
24        HttpUtils $httpUtils,
25        OlzTermineList $olzTermineList,
26    ): Response {
27        return $httpUtils->measure($request, ['filter', 'von'], function () use ($httpUtils, $request, $olzTermineList) {
28            $httpUtils->stripParams($request, ['von']);
29            $out = $olzTermineList->getHtml([]);
30            return new Response($out);
31        });
32    }
33
34    #[Route('/termine/{id}', requirements: ['id' => '\d+'])]
35    public function termineDetail(
36        Request $request,
37        LoggerInterface $logger,
38        HttpUtils $httpUtils,
39        OlzTerminDetail $olzTerminDetail,
40        int $id,
41    ): Response {
42        return $httpUtils->measure($request, ['von'], function () use ($httpUtils, $request, $olzTerminDetail, $id) {
43            $httpUtils->stripParams($request, ['von']);
44            $out = $olzTerminDetail->getHtml(['id' => $id]);
45            return new Response($out);
46        });
47    }
48
49    #[Route('/termine/orte')]
50    public function terminLocationsList(
51        Request $request,
52        LoggerInterface $logger,
53        HttpUtils $httpUtils,
54        OlzTerminLocationsList $olzTerminLocationsList,
55    ): Response {
56        return $httpUtils->measure($request, [], function () use ($olzTerminLocationsList) {
57            $out = $olzTerminLocationsList->getHtml([]);
58            return new Response($out);
59        });
60    }
61
62    #[Route('/termine/orte/{id}', requirements: ['id' => '\d+'])]
63    public function terminLocationDetail(
64        Request $request,
65        LoggerInterface $logger,
66        HttpUtils $httpUtils,
67        OlzTerminLocationDetail $olzTerminLocationDetail,
68        int $id,
69    ): Response {
70        return $httpUtils->measure($request, [], function () use ($olzTerminLocationDetail, $id) {
71            $out = $olzTerminLocationDetail->getHtml(['id' => $id]);
72            return new Response($out);
73        });
74    }
75
76    #[Route('/termine/vorlagen')]
77    public function terminTemplatesList(
78        Request $request,
79        LoggerInterface $logger,
80        HttpUtils $httpUtils,
81        OlzTerminTemplatesList $olzTerminTemplatesList,
82    ): Response {
83        return $httpUtils->measure($request, [], function () use ($olzTerminTemplatesList) {
84            $out = $olzTerminTemplatesList->getHtml([]);
85            return new Response($out);
86        });
87    }
88
89    #[Route('/termine/vorlagen/{id}', requirements: ['id' => '\d+'])]
90    public function terminTemplateDetail(
91        Request $request,
92        LoggerInterface $logger,
93        HttpUtils $httpUtils,
94        OlzTerminTemplateDetail $olzTerminTemplateDetail,
95        int $id,
96    ): Response {
97        return $httpUtils->measure($request, [], function () use ($olzTerminTemplateDetail, $id) {
98            $out = $olzTerminTemplateDetail->getHtml(['id' => $id]);
99            return new Response($out);
100        });
101    }
102
103    #[Route('/olz_ical.ics')]
104    public function termineICal(
105        Request $request,
106        LoggerInterface $logger,
107        OlzICal $olzICal,
108    ): Response {
109        $out = $olzICal->getHtml([]);
110        $response = new Response($out);
111        $response->headers->set('Content-Type', 'text/calendar');
112        return $response;
113    }
114
115    #[Route('/termine.ics')]
116    public function termineListIcs(
117        Request $request,
118        LoggerInterface $logger,
119        HttpUtils $httpUtils,
120        OlzICal $olzICal,
121    ): Response {
122        return $httpUtils->measure($request, [], function () use ($olzICal) {
123            $out = $olzICal->getHtml([]);
124            $response = new Response($out);
125            $response->headers->set('Content-Type', 'text/calendar');
126            return $response;
127        });
128    }
129}