AuthDeleteAction::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 2
dl 0
loc 5
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace Finder\Http\Actions;
4
5
use Finder\Http\Proxy\Contracts\OAuthProxy;
6
use Illuminate\Contracts\Routing\ResponseFactory;
7
use Illuminate\Http\JsonResponse;
8
use Illuminate\Http\Request;
9
use Illuminate\Http\Response;
10
11
/**
12
 * Class AuthDeleteAction.
13
 *
14
 * @package Finder\Http\Actions
15
 */
16
class AuthDeleteAction
17
{
18
    /**
19
     * @var ResponseFactory
20
     */
21
    protected $responseFactory;
22
23
    /**
24
     * @var OAuthProxy
25
     */
26
    protected $oAuthProxy;
27
28
    /**
29
     * AuthDeleteAction constructor.
30
     *
31
     * @param ResponseFactory $responseFactory
32
     * @param OAuthProxy      $oAuthProxy
33
     */
34
    public function __construct(ResponseFactory $responseFactory, OAuthProxy $oAuthProxy)
35
    {
36
        $this->responseFactory = $responseFactory;
37
        $this->oAuthProxy = $oAuthProxy;
38
    }
39
40
    /**
41
     * @apiVersion        1.0.0
42
     * @api               {delete} /v1/auth/token Delete
43
     * @apiName           Delete
44
     * @apiGroup          Auth
45
     * @apiHeader         {String} Accept application/json
46
     * @apiSuccessExample {json} Success-Response:
47
     * HTTP/1.1 204 No Content
48
     */
49
50
    /**
51
     * Delete an auth token.
52
     *
53
     * @param  Request $request
54
     * @return JsonResponse
55
     */
56
    public function __invoke(Request $request): JsonResponse
57
    {
58
        $request->user()->token()->revoke();
59
        $request->user()->token()->delete();
60
61
        return $this->responseFactory->json(null, Response::HTTP_NO_CONTENT);
62
    }
63
}
64