AskForPermissionsConsentCardResponseRequestHandler   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 25
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 7
dl 0
loc 25
rs 10
c 1
b 0
f 0
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A handleRequest() 0 10 1
A supportsRequest() 0 4 1
A __construct() 0 5 1
1
<?php
2
3
declare(strict_types=1);
4
5
use MaxBeckers\AmazonAlexa\Helper\ResponseHelper;
6
use MaxBeckers\AmazonAlexa\Request\Request;
7
use MaxBeckers\AmazonAlexa\Request\Request\Standard\IntentRequest;
8
use MaxBeckers\AmazonAlexa\RequestHandler\AbstractRequestHandler;
9
use MaxBeckers\AmazonAlexa\Response\Card;
10
use MaxBeckers\AmazonAlexa\Response\Response;
11
12
/**
13
 * Just a example request handler for a card response with ask for permissions.
14
 */
15
class AskForPermissionsConsentCardResponseRequestHandler extends AbstractRequestHandler
16
{
17
    public function __construct(
18
        private readonly ResponseHelper $responseHelper
19
    ) {
20
        parent::__construct();
21
        $this->supportedApplicationIds = ['my_amazon_skill_id'];
22
    }
23
24
    public function supportsRequest(Request $request): bool
25
    {
26
        // support all intent requests, should not be done.
27
        return $request->request instanceof IntentRequest;
28
    }
29
30
    public function handleRequest(Request $request): Response
31
    {
32
        // here for example try to get full address. DeviceAddressInformationHelper->getAddress($request)
33
        // when you get a 403 do sth. like the following.
34
35
        // create a card to ask the user for full address permissions
36
        $card = Card::createAskForPermissionsConsent([Card::PERMISSION_FULL_ADDRESS]);
37
        $this->responseHelper->card($card);
38
39
        return $this->responseHelper->getResponse();
40
    }
41
}
42