Lines 100.00% 29 / 29
Methods 100.00% 4 / 4
Classes 100.00% 1 / 1
Name Lines Methods CRAP
 setHash 100.00% 11 / 11 100.00% 1 / 1 3
 getHash 100.00% 3 / 3 100.00% 1 / 1 2
 setHomeUrl 100.00% 12 / 12 100.00% 1 / 1 3
 getHomeUrl 100.00% 3 / 3 100.00% 1 / 1 2
8class Ticketprinter
9{
10    const string HASH_COOKIE_NAME = 'Ticketprinter';
11    const string HOME_URL_COOKIE_NAME = 'Ticketprinter_Homeurl';
12
13    /**
14     * @SuppressWarnings(Superglobals)
15     *
16     * @param string $hash
17     * @param \Psr\Http\Message\RequestInterface $request
18     * @psalm-suppress DeprecatedMethod
19     */
20    public static function setHash(string $hash, \Psr\Http\Message\RequestInterface $request): void
21    {
22        $_COOKIE[self::HASH_COOKIE_NAME] = $hash;
23        if (!headers_sent()) {
24            $basePath = $request instanceof \BO\Slim\Request ? $request->getBasePath() : '';
25            setcookie(
26                self::HASH_COOKIE_NAME,
27                $hash,
28                time() + (60 * 60 * 24 * 365 * 10),
29                $basePath,
30                '',
31                false
32            );
33        }
34    }
35
36    /**
37     * @SuppressWarnings(Superglobals)
38     *
39     * @return false|string
40     */
41    public static function getHash(): string|false
42    {
43        if (array_key_exists(self::HASH_COOKIE_NAME, $_COOKIE)) {
44            return $_COOKIE[self::HASH_COOKIE_NAME];
45        }
46        return false;
47    }
48
49    /**
50     * @SuppressWarnings(Superglobals)
51     *
52     * @getBasePath () see https://www.slimframework.com/docs/v3/objects/request.html#the-request-method
53     * @psalm-suppress DeprecatedMethod
54     */
55    public static function setHomeUrl(string $url, \Psr\Http\Message\RequestInterface $request): void
56    {
57        $_COOKIE[self::HOME_URL_COOKIE_NAME] = $url;
58        if (!headers_sent()) {
59            $basePath = $request instanceof \BO\Slim\Request ? $request->getBasePath() : '';
60            setcookie(
61                self::HOME_URL_COOKIE_NAME,
62                $url,
63                time() + (60 * 60 * 24 * 365 * 10),
64                $basePath,
65                '',
66                false,
67                true
68            );
69        }
70    }
71
72    /**
73     * @SuppressWarnings(Superglobals)
74     *
75     * @return false|string
76     */
77    public static function getHomeUrl(): string|false
78    {
79        if (array_key_exists(self::HOME_URL_COOKIE_NAME, $_COOKIE)) {
80            return $_COOKIE[self::HOME_URL_COOKIE_NAME];
81        }
82        return false;
83    }
84}