Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
19 / 19
100.00% covered (success)
100.00%
6 / 6
CRAP
100.00% covered (success)
100.00%
1 / 1
GuestController
100.00% covered (success)
100.00%
19 / 19
100.00% covered (success)
100.00%
6 / 6
6
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 respond
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 access
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
1 / 1
1
 check
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 ticketpdf
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
1 / 1
1
 invoicesend
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3    /**
4     * Slim-style controller for guest table-access, courtesy ticket PDF, and invoice email.
5     * Delegates to GuestService; requires base.php (routes) for ApplicationError, ddbb, success.
6     */
7    declare(strict_types=1);
8
9    use Psr\Http\Message\ResponseInterface as Response;
10    use Psr\Http\Message\ServerRequestInterface as Request;
11    use UppServices\GuestService;
12
13    class GuestController
14    {
15        private readonly GuestService $guestService;
16
17        public function __construct(GuestService $guestService)
18        {
19            $this->guestService = $guestService;
20        }
21
22        private function respond(Response $response, array $result): Response
23        {
24            $response->getBody()->write($result['output']);
25            return $response->withHeader('Content-Type', $result['contentType']);
26        }
27
28        /** POST /guest/access - grant guest session by table QR */
29        public function access(Request $request, Response $response): Response
30        {
31            $result = $this->guestService->access(
32                (string) $request->getBody(),
33                $request->getQueryParams()
34            );
35            return $this->respond($response, $result);
36        }
37
38        /** GET /guest/check - verify guest session */
39        public function check(Request $request, Response $response): Response
40        {
41            return $this->respond($response, $this->guestService->check($request->getQueryParams()));
42        }
43
44        /** POST /guest/ticketpdf - render courtesy ticket PDF from HTML */
45        public function ticketpdf(Request $request, Response $response): Response
46        {
47            $result = $this->guestService->ticketpdf(
48                (string) $request->getBody(),
49                $request->getQueryParams()
50            );
51            return $this->respond($response, $result);
52        }
53
54        /** POST /guest/invoicesend - email invoice PDF (guest session) */
55        public function invoicesend(Request $request, Response $response): Response
56        {
57            $result = $this->guestService->invoicesend(
58                (string) $request->getBody(),
59                $request->getQueryParams()
60            );
61            return $this->respond($response, $result);
62        }
63    }