GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Push — master ( 5fd32e...bbf340 )
by James
01:52
created

Response   A

Complexity

Total Complexity 12

Size/Duplication

Total Lines 97
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Test Coverage

Coverage 77.78%

Importance

Changes 0
Metric Value
wmc 12
lcom 1
cbo 4
dl 0
loc 97
ccs 21
cts 27
cp 0.7778
rs 10
c 0
b 0
f 0

11 Methods

Rating   Name   Duplication   Size   Complexity  
A makeJsonResponse() 0 7 1
A makeStatusCode() 0 12 4
A makeHtmlResponse() 0 10 2
A makeRequestOneTimePasswordResponse() 0 16 4
A getView() 0 4 1
getErrorBagForStatusCode() 0 1 ?
inputHasOneTimePassword() 0 1 ?
checkOTP() 0 1 ?
getUser() 0 1 ?
getRequest() 0 1 ?
config() 0 1 ?
1
<?php
2
3
namespace PragmaRX\Google2FALaravel\Support;
4
5
use Illuminate\Http\JsonResponse as IlluminateJsonResponse;
6
use Illuminate\Http\Response as IlluminateHtmlResponse;
7
use PragmaRX\Google2FALaravel\Events\OneTimePasswordRequested;
8
use PragmaRX\Google2FALaravel\Events\OneTimePasswordRequested53;
9
use Symfony\Component\HttpFoundation\Response as SymfonyResponse;
10
11
/**
12
 * Trait Response
13
 */
14
trait Response
15
{
16
    /**
17
     * Make a JSON response.
18
     *
19
     * @param $statusCode
20
     *
21
     * @return IlluminateJsonResponse
22
     */
23
    protected function makeJsonResponse($statusCode)
24
    {
25
        return new IlluminateJsonResponse(
26
            $this->getErrorBagForStatusCode($statusCode),
27
            $statusCode
28
        );
29
    }
30
31
    /**
32
     * Make the status code, to respond accordingly.
33
     *
34
     * @return int
35
     */
36 7
    protected function makeStatusCode()
37
    {
38 7
        if ($this->getRequest()->isMethod('get') || ($this->checkOTP() === Constants::OTP_VALID)) {
39 4
            return SymfonyResponse::HTTP_OK;
40
        }
41
42 3
        if ($this->checkOTP() === Constants::OTP_EMPTY) {
43 2
            return SymfonyResponse::HTTP_BAD_REQUEST;
44
        }
45
46 1
        return SymfonyResponse::HTTP_UNPROCESSABLE_ENTITY;
47
    }
48
49
    /**
50
     * Make a web response.
51
     *
52
     * @param $statusCode
53
     *
54
     * @return \Illuminate\Http\Response
55
     */
56 7
    protected function makeHtmlResponse($statusCode)
57
    {
58 7
        $view = $this->getView();
59
60 7
        if ($statusCode !== SymfonyResponse::HTTP_OK) {
61 3
            $view->withErrors($this->getErrorBagForStatusCode($statusCode));
62
        }
63
64 7
        return new IlluminateHtmlResponse($view, $statusCode);
65
    }
66
67
    /**
68
     * Create a response to request the OTP.
69
     *
70
     * @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse
71
     */
72 7
    public function makeRequestOneTimePasswordResponse()
73
    {
74 7
        event(
75 7
            app()->version() < '5.4'
76
                ? new OneTimePasswordRequested53($this->getUser())
77 7
                : new OneTimePasswordRequested($this->getUser())
78
        );
79
80 7
        $expectJson = app()->version() < '5.4'
81
            ? $this->getRequest()->wantsJson()
82 7
            : $this->getRequest()->expectsJson();
83
84 7
        return $expectJson
85
            ? $this->makeJsonResponse($this->makeStatusCode())
86 7
            : $this->makeHtmlResponse($this->makeStatusCode());
87
    }
88
89
    /**
90
     * Get the OTP view.
91
     *
92
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
93
     */
94 7
    private function getView()
95
    {
96 7
        return view($this->config('view'));
97
    }
98
99
    abstract protected function getErrorBagForStatusCode($statusCode);
100
101
    abstract protected function inputHasOneTimePassword();
102
103
    abstract public function checkOTP();
104
105
    abstract protected function getUser();
106
107
    abstract public function getRequest();
108
109
    abstract protected function config($string, $children = []);
110
}
111