Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 20
0.00% covered (danger)
0.00%
0 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 1
OlzStravaRedirectParams
n/a
0 / 0
n/a
0 / 0
0
n/a
0 / 0
OlzStravaRedirect
0.00% covered (danger)
0.00%
0 / 20
0.00% covered (danger)
0.00%
0 / 3
30
0.00% covered (danger)
0.00%
0 / 1
 hasAccess
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 searchSqlWhenHasAccess
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getHtmlWhenHasAccess
0.00% covered (danger)
0.00%
0 / 18
0.00% covered (danger)
0.00%
0 / 1
12
1<?php
2
3namespace Olz\Components\Auth\OlzStravaRedirect;
4
5use Olz\Components\Common\OlzRootComponent;
6use Olz\Components\Page\OlzFooter\OlzFooter;
7use Olz\Components\Page\OlzHeader\OlzHeader;
8use Olz\Utils\HttpParams;
9
10/** @extends HttpParams<array{
11 *   redirect_url?: ?string,
12 *   state?: ?string,
13 *   code?: ?string,
14 *   scope?: ?string,
15 * }> */
16class OlzStravaRedirectParams extends HttpParams {
17}
18
19/** @extends OlzRootComponent<array<string, mixed>> */
20class OlzStravaRedirect extends OlzRootComponent {
21    public function hasAccess(): bool {
22        return true;
23    }
24
25    public function searchSqlWhenHasAccess(array $terms): string|array|null {
26        return null;
27    }
28
29    public function getHtmlWhenHasAccess(mixed $args): string {
30        $params = $this->httpUtils()->validateGetParams(OlzStravaRedirectParams::class);
31        $code = $params['code'] ?? '';
32        $js_code = json_encode($code) ?: '""';
33        $js_redirect_url = json_encode($params['redirect_url'] ?? null) ?: 'null';
34
35        $out = OlzHeader::render([
36            'title' => "Mit Strava verbinden",
37            'description' => "Mit Strava verbinden.",
38            'norobots' => true,
39        ]);
40
41        $out .= "<div class='content-full'>";
42        $out .= <<<ZZZZZZZZZZ
43            <script>
44            const code = {$js_code};
45            const redirectUrl = {$js_redirect_url};
46            window.addEventListener('load', function () {
47                olz.olzLinkStravaWithCode(code).then(function () {
48                    window.location.href = redirectUrl;
49                }).catch(function () {
50                    window.location.href = redirectUrl;
51                });
52            });
53            </script>
54            ZZZZZZZZZZ;
55        $out .= "</div>";
56
57        $out .= OlzFooter::render();
58        return $out;
59    }
60}