Passed
Push — master ( 8fc162...54fc89 )
by Maximilian
47s
created

supportsRequest()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 1
dl 0
loc 4
rs 10
c 1
b 0
f 0
cc 1
nc 1
nop 1
1
<?php
2
3
use MaxBeckers\AmazonAlexa\Helper\ResponseHelper;
4
use MaxBeckers\AmazonAlexa\Request\Request;
5
use MaxBeckers\AmazonAlexa\Request\Request\Standard\IntentRequest;
6
use MaxBeckers\AmazonAlexa\RequestHandler\AbstractRequestHandler;
7
use MaxBeckers\AmazonAlexa\Response\Card;
8
use MaxBeckers\AmazonAlexa\Response\Response;
9
10
/**
11
 * Just a example request handler for a card response with ask for permissions.
12
 *
13
 * @author Maximilian Beckers <[email protected]>
14
 */
15
class AskForPermissionsConsentCardResponseRequestHandler extends AbstractRequestHandler
16
{
17
    /**
18
     * @var ResponseHelper
19
     */
20
    private $responseHelper;
21
22
    /**
23
     * @param ResponseHelper $responseHelper
24
     */
25
    public function __construct(ResponseHelper $responseHelper)
26
    {
27
        $this->responseHelper          = $responseHelper;
28
        $this->supportedApplicationIds = ['my_amazon_skill_id'];
29
    }
30
31
    /**
32
     * {@inheritdoc}
33
     */
34
    public function supportsRequest(Request $request): bool
35
    {
36
        // support all intent requests, should not be done.
37
        return $request->request instanceof IntentRequest;
38
    }
39
40
    /**
41
     * {@inheritdoc}
42
     */
43
    public function handleRequest(Request $request): Response
44
    {
45
        // here for example try to get full address. DeviceAddressInformationHelper->getAddress($request)
46
        // when you get a 403 do sth. like the following.
47
48
        // create a card to ask the user for full address permissions
49
        $card = Card::createAskForPermissionsConsent([Card::PERMISSION_FULL_ADDRESS]);
50
        $this->responseHelper->card($card);
51
52
        return $this->responseHelper->getResponse();
53
    }
54
}
55