Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 21
0.00% covered (danger)
0.00%
0 / 4
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 / 21
0.00% covered (danger)
0.00%
0 / 4
42
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
 getSearchTitle
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getSearchResultsWhenHasAccess
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 getSearchTitle(): string {
26        return 'TODO';
27    }
28
29    public function getSearchResultsWhenHasAccess(array $terms): array {
30        return [];
31    }
32
33    public function getHtmlWhenHasAccess(mixed $args): string {
34        $params = $this->httpUtils()->validateGetParams(OlzStravaRedirectParams::class);
35        $code = $params['code'] ?? '';
36        $js_code = json_encode($code) ?: '""';
37        $js_redirect_url = json_encode($params['redirect_url'] ?? null) ?: 'null';
38
39        $out = OlzHeader::render([
40            'title' => "Mit Strava verbinden",
41            'description' => "Mit Strava verbinden.",
42            'norobots' => true,
43        ]);
44
45        $out .= "<div class='content-full'>";
46        $out .= <<<ZZZZZZZZZZ
47            <script>
48            const code = {$js_code};
49            const redirectUrl = {$js_redirect_url};
50            window.addEventListener('load', function () {
51                olz.olzLinkStravaWithCode(code).then(function () {
52                    window.location.href = redirectUrl;
53                }).catch(function () {
54                    window.location.href = redirectUrl;
55                });
56            });
57            </script>
58            ZZZZZZZZZZ;
59        $out .= "</div>";
60
61        $out .= OlzFooter::render();
62        return $out;
63    }
64}