Completed
Pull Request — master (#23)
by Roberto
08:58
created
tests/TestCase.php 1 patch
Indentation   +22 added lines, -22 removed lines patch added patch discarded remove patch
@@ -20,29 +20,29 @@
 block discarded – undo
20 20
  */
21 21
 class TestCase extends OrchestraTestCase {
22 22
 
23
-	/**
24
-	 * Load package alias
25
-	 *
26
-	 * @param  \Illuminate\Foundation\Application $app
27
-	 *
28
-	 * @return array
29
-	 */
30
-	protected function getPackageAliases($app) {
23
+    /**
24
+     * Load package alias
25
+     *
26
+     * @param  \Illuminate\Foundation\Application $app
27
+     *
28
+     * @return array
29
+     */
30
+    protected function getPackageAliases($app) {
31 31
 
32
-		return [
33
-			'ReCaptcha' => ReCaptcha::class,
34
-		];
35
-	}
32
+        return [
33
+            'ReCaptcha' => ReCaptcha::class,
34
+        ];
35
+    }
36 36
 
37
-	/**
38
-	 * Load package service provider
39
-	 *
40
-	 * @param \Illuminate\Foundation\Application $app
41
-	 *
42
-	 * @return array
43
-	 */
44
-	protected function getPackageProviders($app) {
37
+    /**
38
+     * Load package service provider
39
+     *
40
+     * @param \Illuminate\Foundation\Application $app
41
+     *
42
+     * @return array
43
+     */
44
+    protected function getPackageProviders($app) {
45 45
 
46
-		return [ReCaptchaServiceProvider::class];
47
-	}
46
+        return [ReCaptchaServiceProvider::class];
47
+    }
48 48
 }
Please login to merge, or discard this patch.
src/Facades/ReCaptcha.php 1 patch
Indentation   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -18,13 +18,13 @@
 block discarded – undo
18 18
  */
19 19
 class ReCaptcha extends Facade {
20 20
 
21
-	/**
22
-	 * Get the registered name of the component.
23
-	 *
24
-	 * @return string
25
-	 */
26
-	protected static function getFacadeAccessor() {
21
+    /**
22
+     * Get the registered name of the component.
23
+     *
24
+     * @return string
25
+     */
26
+    protected static function getFacadeAccessor() {
27 27
 
28
-		return 'recaptcha';
29
-	}
28
+        return 'recaptcha';
29
+    }
30 30
 }
Please login to merge, or discard this patch.
src/helpers.php 1 patch
Indentation   +36 added lines, -36 removed lines patch added patch discarded remove patch
@@ -11,13 +11,13 @@  discard block
 block discarded – undo
11 11
 use Biscolab\ReCaptcha\Facades\ReCaptcha;
12 12
 
13 13
 if (!function_exists('recaptcha')) {
14
-	/**
15
-	 * @return Biscolab\ReCaptcha\ReCaptchaBuilder
16
-	 */
17
-	function recaptcha() {
14
+    /**
15
+     * @return Biscolab\ReCaptcha\ReCaptchaBuilder
16
+     */
17
+    function recaptcha() {
18 18
 
19
-		return app('recaptcha');
20
-	}
19
+        return app('recaptcha');
20
+    }
21 21
 }
22 22
 
23 23
 /**
@@ -29,15 +29,15 @@  discard block
 block discarded – undo
29 29
  */
30 30
 if (!function_exists('htmlScriptTagJsApi')) {
31 31
 
32
-	/**
33
-	 * @param string $formId
34
-	 *
35
-	 * @return string
36
-	 */
37
-	function htmlScriptTagJsApi($formId = ''): string {
32
+    /**
33
+     * @param string $formId
34
+     *
35
+     * @return string
36
+     */
37
+    function htmlScriptTagJsApi($formId = ''): string {
38 38
 
39
-		return ReCaptcha::htmlScriptTagJsApi($formId);
40
-	}
39
+        return ReCaptcha::htmlScriptTagJsApi($formId);
40
+    }
41 41
 }
42 42
 
43 43
 /**
@@ -49,15 +49,15 @@  discard block
 block discarded – undo
49 49
  */
50 50
 if (!function_exists('htmlScriptTagJsApiV3')) {
51 51
 
52
-	/**
53
-	 * @param array $config
54
-	 *
55
-	 * @return string
56
-	 */
57
-	function htmlScriptTagJsApiV3($config = []): string {
52
+    /**
53
+     * @param array $config
54
+     *
55
+     * @return string
56
+     */
57
+    function htmlScriptTagJsApiV3($config = []): string {
58 58
 
59
-		return ReCaptcha::htmlScriptTagJsApiV3($config);
60
-	}
59
+        return ReCaptcha::htmlScriptTagJsApiV3($config);
60
+    }
61 61
 }
62 62
 
63 63
 /**
@@ -71,15 +71,15 @@  discard block
 block discarded – undo
71 71
  */
72 72
 if (!function_exists('htmlFormButton')) {
73 73
 
74
-	/**
75
-	 * @param null|string $buttonInnerHTML
76
-	 *
77
-	 * @return string
78
-	 */
79
-	function htmlFormButton(?string $buttonInnerHTML = 'Submit'): string {
74
+    /**
75
+     * @param null|string $buttonInnerHTML
76
+     *
77
+     * @return string
78
+     */
79
+    function htmlFormButton(?string $buttonInnerHTML = 'Submit'): string {
80 80
 
81
-		return ReCaptcha::htmlFormButton($buttonInnerHTML);
82
-	}
81
+        return ReCaptcha::htmlFormButton($buttonInnerHTML);
82
+    }
83 83
 }
84 84
 
85 85
 /**
@@ -91,12 +91,12 @@  discard block
 block discarded – undo
91 91
  */
92 92
 if (!function_exists('htmlFormSnippet')) {
93 93
 
94
-	/**
95
-	 * @return string
96
-	 */
97
-	function htmlFormSnippet(): string {
94
+    /**
95
+     * @return string
96
+     */
97
+    function htmlFormSnippet(): string {
98 98
 
99
-		return ReCaptcha::htmlFormSnippet();
100
-	}
99
+        return ReCaptcha::htmlFormSnippet();
100
+    }
101 101
 }
102 102
 
Please login to merge, or discard this patch.
src/ReCaptchaBuilderV2.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -34,7 +34,7 @@
 block discarded – undo
34 34
 	 */
35 35
 	public function htmlFormSnippet(): string {
36 36
 
37
-		return ($this->version == 'v2') ? '<div class="g-recaptcha" data-sitekey="' . $this->api_site_key . '"></div>' : '';
37
+		return ($this->version == 'v2') ? '<div class="g-recaptcha" data-sitekey="'.$this->api_site_key.'"></div>' : '';
38 38
 	}
39 39
 
40 40
 }
41 41
\ No newline at end of file
Please login to merge, or discard this patch.
Indentation   +18 added lines, -18 removed lines patch added patch discarded remove patch
@@ -16,26 +16,26 @@
 block discarded – undo
16 16
  */
17 17
 class ReCaptchaBuilderV2 extends ReCaptchaBuilder {
18 18
 
19
-	/**
20
-	 * ReCaptchaBuilderV2 constructor.
21
-	 *
22
-	 * @param string $api_site_key
23
-	 * @param string $api_secret_key
24
-	 * @param int $curl_timeout
25
-	 */
26
-	public function __construct(string $api_site_key, string $api_secret_key, int $curl_timeout) {
19
+    /**
20
+     * ReCaptchaBuilderV2 constructor.
21
+     *
22
+     * @param string $api_site_key
23
+     * @param string $api_secret_key
24
+     * @param int $curl_timeout
25
+     */
26
+    public function __construct(string $api_site_key, string $api_secret_key, int $curl_timeout) {
27 27
 
28
-		parent::__construct($api_site_key, $api_secret_key, 'v2', $curl_timeout);
29
-	}
28
+        parent::__construct($api_site_key, $api_secret_key, 'v2', $curl_timeout);
29
+    }
30 30
 
31
-	/**
32
-	 * Write ReCAPTCHA HTML tag in your FORM
33
-	 * Insert before </form> tag
34
-	 * @return string
35
-	 */
36
-	public function htmlFormSnippet(): string {
31
+    /**
32
+     * Write ReCAPTCHA HTML tag in your FORM
33
+     * Insert before </form> tag
34
+     * @return string
35
+     */
36
+    public function htmlFormSnippet(): string {
37 37
 
38
-		return ($this->version == 'v2') ? '<div class="g-recaptcha" data-sitekey="' . $this->api_site_key . '"></div>' : '';
39
-	}
38
+        return ($this->version == 'v2') ? '<div class="g-recaptcha" data-sitekey="' . $this->api_site_key . '"></div>' : '';
39
+    }
40 40
 
41 41
 }
42 42
\ No newline at end of file
Please login to merge, or discard this patch.
src/ReCaptchaBuilderInvisible.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -37,7 +37,7 @@
 block discarded – undo
37 37
 	 */
38 38
 	public function htmlFormButton($buttonInnerHTML = 'Submit'): string {
39 39
 
40
-		return ($this->version == 'invisible') ? '<button class="g-recaptcha" data-sitekey="' . $this->api_site_key . '" data-callback="biscolabLaravelReCaptcha">' . $buttonInnerHTML . '</button>' : '';
40
+		return ($this->version == 'invisible') ? '<button class="g-recaptcha" data-sitekey="'.$this->api_site_key.'" data-callback="biscolabLaravelReCaptcha">'.$buttonInnerHTML.'</button>' : '';
41 41
 	}
42 42
 
43 43
 }
44 44
\ No newline at end of file
Please login to merge, or discard this patch.
Indentation   +21 added lines, -21 removed lines patch added patch discarded remove patch
@@ -16,29 +16,29 @@
 block discarded – undo
16 16
  */
17 17
 class ReCaptchaBuilderInvisible extends ReCaptchaBuilder {
18 18
 
19
-	/**
20
-	 * ReCaptchaBuilderInvisible constructor.
21
-	 *
22
-	 * @param string $api_site_key
23
-	 * @param string $api_secret_key
24
-	 * @param int $curl_timeout
25
-	 */
26
-	public function __construct(string $api_site_key, string $api_secret_key, int $curl_timeout) {
19
+    /**
20
+     * ReCaptchaBuilderInvisible constructor.
21
+     *
22
+     * @param string $api_site_key
23
+     * @param string $api_secret_key
24
+     * @param int $curl_timeout
25
+     */
26
+    public function __construct(string $api_site_key, string $api_secret_key, int $curl_timeout) {
27 27
 
28
-		parent::__construct($api_site_key, $api_secret_key, 'invisible', $curl_timeout);
29
-	}
28
+        parent::__construct($api_site_key, $api_secret_key, 'invisible', $curl_timeout);
29
+    }
30 30
 
31
-	/**
32
-	 * Write HTML <button> tag in your HTML code
33
-	 * Insert before </form> tag
34
-	 *
35
-	 * @param string $buttonInnerHTML
36
-	 *
37
-	 * @return string
38
-	 */
39
-	public function htmlFormButton($buttonInnerHTML = 'Submit'): string {
31
+    /**
32
+     * Write HTML <button> tag in your HTML code
33
+     * Insert before </form> tag
34
+     *
35
+     * @param string $buttonInnerHTML
36
+     *
37
+     * @return string
38
+     */
39
+    public function htmlFormButton($buttonInnerHTML = 'Submit'): string {
40 40
 
41
-		return ($this->version == 'invisible') ? '<button class="g-recaptcha" data-sitekey="' . $this->api_site_key . '" data-callback="biscolabLaravelReCaptcha">' . $buttonInnerHTML . '</button>' : '';
42
-	}
41
+        return ($this->version == 'invisible') ? '<button class="g-recaptcha" data-sitekey="' . $this->api_site_key . '" data-callback="biscolabLaravelReCaptcha">' . $buttonInnerHTML . '</button>' : '';
42
+    }
43 43
 
44 44
 }
45 45
\ No newline at end of file
Please login to merge, or discard this patch.
src/Controllers/ReCaptchaController.php 1 patch
Indentation   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -18,12 +18,12 @@
 block discarded – undo
18 18
  */
19 19
 class ReCaptchaController extends Controller {
20 20
 
21
-	/**
22
-	 * @return array
23
-	 */
24
-	public function validateV3(): array {
21
+    /**
22
+     * @return array
23
+     */
24
+    public function validateV3(): array {
25 25
 
26
-		$token = request()->input(config('recaptcha.default_token_parameter_name', 'token'), '');
27
-		return recaptcha()->validate($token);
28
-	}
26
+        $token = request()->input(config('recaptcha.default_token_parameter_name', 'token'), '');
27
+        return recaptcha()->validate($token);
28
+    }
29 29
 }
30 30
\ No newline at end of file
Please login to merge, or discard this patch.
src/ReCaptchaBuilder.php 3 patches
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -116,7 +116,7 @@  discard block
 block discarded – undo
116 116
 	public function getIpWhitelist() {
117 117
 		$whitelist = config('recaptcha.skip_ip', []);
118 118
 
119
-		if(!is_array($whitelist)) {
119
+		if (!is_array($whitelist)) {
120 120
 			$whitelist = explode(',', $whitelist);
121 121
 		}
122 122
 
@@ -163,7 +163,7 @@  discard block
 block discarded – undo
163 163
 			}
164 164
 			$html .= '<script>
165 165
 		       function biscolabLaravelReCaptcha(token) {
166
-		         document.getElementById("' . $formId . '").submit();
166
+		         document.getElementById("' . $formId.'").submit();
167 167
 		       }
168 168
 		     </script>';
169 169
 		}
@@ -187,7 +187,7 @@  discard block
 block discarded – undo
187 187
 				$js_callback_catch = ($js_callback_catch) ? "{$js_callback_catch}(err)" : '';
188 188
 
189 189
 				$validate_function = "
190
-                fetch('/" . config('recaptcha.default_validation_route', 'biscolab-recaptcha/validate') . "?" . config('recaptcha.default_token_parameter_name', 'token') . "=' + token, {
190
+                fetch('/" . config('recaptcha.default_validation_route', 'biscolab-recaptcha/validate')."?".config('recaptcha.default_token_parameter_name', 'token')."=' + token, {
191 191
                     headers: {
192 192
                         \"X-Requested-With\": \"XMLHttpRequest\",
193 193
                         \"X-CSRF-TOKEN\": csrfToken.content
@@ -252,7 +252,7 @@  discard block
 block discarded – undo
252 252
 			'response' => $response,
253 253
 		]);
254 254
 
255
-		$url = $this->api_url . '?' . $params;
255
+		$url = $this->api_url.'?'.$params;
256 256
 
257 257
 		if (function_exists('curl_version')) {
258 258
 			$curl = curl_init($url);
Please login to merge, or discard this patch.
Indentation   +277 added lines, -277 removed lines patch added patch discarded remove patch
@@ -14,206 +14,206 @@  discard block
 block discarded – undo
14 14
 
15 15
 class ReCaptchaBuilder {
16 16
 
17
-	/**
18
-	 * The Site key
19
-	 * please visit https://developers.google.com/recaptcha/docs/start
20
-	 * @var string
21
-	 */
22
-	protected $api_site_key;
23
-
24
-	/**
25
-	 * The Secret key
26
-	 * please visit https://developers.google.com/recaptcha/docs/start
27
-	 * @var string
28
-	 */
29
-	protected $api_secret_key;
30
-
31
-	/**
32
-	 * The chosen ReCAPTCHA version
33
-	 * please visit https://developers.google.com/recaptcha/docs/start
34
-	 * @var string
35
-	 */
36
-	protected $version;
37
-
38
-	/**
39
-	 * The curl timeout
40
-	 * please visit https://curl.haxx.se/libcurl/c/CURLOPT_TIMEOUT.html
41
-	 * @var int
42
-	 */
43
-	protected $curl_timeout;
44
-
45
-	/**
46
-	 * Whether is true the ReCAPTCHA is inactive
47
-	 * @var boolean
48
-	 */
49
-	protected $skip_by_ip = false;
50
-
51
-	/**
52
-	 * The API request URI
53
-	 */
54
-	protected $api_url = 'https://www.google.com/recaptcha/api/siteverify';
55
-
56
-	public function __construct($api_site_key, $api_secret_key, $version = 'v2', $curl_timeout = 3) {
57
-
58
-		$this->setApiSiteKey($api_site_key);
59
-		$this->setApiSecretKey($api_secret_key);
60
-		$this->setVersion($version);
61
-		$this->setCurlTimeout($curl_timeout);
62
-		$this->setSkipByIp($this->skipByIp());
63
-	}
64
-
65
-	/**
66
-	 * @param string $api_site_key
67
-	 *
68
-	 * @return ReCaptchaBuilder
69
-	 */
70
-	public function setApiSiteKey(string $api_site_key): ReCaptchaBuilder {
71
-
72
-		$this->api_site_key = $api_site_key;
73
-
74
-		return $this;
75
-	}
76
-
77
-	/**
78
-	 * @param string $api_secret_key
79
-	 *
80
-	 * @return ReCaptchaBuilder
81
-	 */
82
-	public function setApiSecretKey(string $api_secret_key): ReCaptchaBuilder {
83
-
84
-		$this->api_secret_key = $api_secret_key;
85
-
86
-		return $this;
87
-	}
88
-
89
-	/**
90
-	 * @param int $curl_timeout
91
-	 * @return ReCaptchaBuilder
92
-	 */
93
-	public function setCurlTimeout(int $curl_timeout): ReCaptchaBuilder {
94
-
95
-		$this->curl_timeout = $curl_timeout;
96
-
97
-		return $this;
98
-	}
99
-
100
-	/**
101
-	 * @return int
102
-	 */
103
-	public function getCurlTimeout(): int {
104
-
105
-		return $this->curl_timeout;
106
-	}
107
-
108
-	/**
109
-	 * @param string $version
110
-	 *
111
-	 * @return ReCaptchaBuilder
112
-	 */
113
-	public function setVersion(string $version): ReCaptchaBuilder {
114
-
115
-		$this->version = $version;
116
-
117
-		return $this;
118
-	}
119
-
120
-	/**
121
-	 * @return string
122
-	 */
123
-	public function getVersion(): string {
124
-
125
-		return $this->version;
126
-	}
127
-
128
-	/**
129
-	 * @param bool $skip_by_ip
130
-	 *
131
-	 * @return ReCaptchaBuilder
132
-	 */
133
-	public function setSkipByIp(bool $skip_by_ip): ReCaptchaBuilder {
134
-
135
-		$this->skip_by_ip = $skip_by_ip;
136
-
137
-		return $this;
138
-	}
139
-
140
-	/**
141
-	 * @return array|mixed
142
-	 */
143
-	public function getIpWhitelist() {
144
-		$whitelist = config('recaptcha.skip_ip', []);
145
-
146
-		if(!is_array($whitelist)) {
147
-			$whitelist = explode(',', $whitelist);
148
-		}
149
-
150
-		return $whitelist;
151
-	}
152
-
153
-	/**
154
-	 * Checks whether the user IP address is among IPs "to be skipped"
155
-	 *
156
-	 * @return boolean
157
-	 */
158
-	public function skipByIp(): bool {
159
-
160
-		return (in_array(request()->ip(), $this->getIpWhitelist()));
161
-	}
162
-
163
-	/**
164
-	 * Write script HTML tag in you HTML code
165
-	 * Insert before </head> tag
166
-	 *
167
-	 * @param string|null $formId
168
-	 * @param array|null  $configuration
169
-	 *
170
-	 * @return string
171
-	 * @throws Exception
172
-	 */
173
-	public function htmlScriptTagJsApi(?string $formId = '', ?array $configuration = []): string {
174
-
175
-		if ($this->skip_by_ip) {
176
-			return '';
177
-		}
178
-
179
-		switch ($this->version) {
180
-			case 'v3':
181
-				$html = "<script src=\"https://www.google.com/recaptcha/api.js?render={$this->api_site_key}\"></script>";
182
-				break;
183
-			default:
184
-				$html = "<script src=\"https://www.google.com/recaptcha/api.js\" async defer></script>";
185
-		}
186
-
187
-		if ($this->version == 'invisible') {
188
-			if (!$formId) {
189
-				throw new Exception("formId required", 1);
190
-			}
191
-			$html .= '<script>
17
+    /**
18
+     * The Site key
19
+     * please visit https://developers.google.com/recaptcha/docs/start
20
+     * @var string
21
+     */
22
+    protected $api_site_key;
23
+
24
+    /**
25
+     * The Secret key
26
+     * please visit https://developers.google.com/recaptcha/docs/start
27
+     * @var string
28
+     */
29
+    protected $api_secret_key;
30
+
31
+    /**
32
+     * The chosen ReCAPTCHA version
33
+     * please visit https://developers.google.com/recaptcha/docs/start
34
+     * @var string
35
+     */
36
+    protected $version;
37
+
38
+    /**
39
+     * The curl timeout
40
+     * please visit https://curl.haxx.se/libcurl/c/CURLOPT_TIMEOUT.html
41
+     * @var int
42
+     */
43
+    protected $curl_timeout;
44
+
45
+    /**
46
+     * Whether is true the ReCAPTCHA is inactive
47
+     * @var boolean
48
+     */
49
+    protected $skip_by_ip = false;
50
+
51
+    /**
52
+     * The API request URI
53
+     */
54
+    protected $api_url = 'https://www.google.com/recaptcha/api/siteverify';
55
+
56
+    public function __construct($api_site_key, $api_secret_key, $version = 'v2', $curl_timeout = 3) {
57
+
58
+        $this->setApiSiteKey($api_site_key);
59
+        $this->setApiSecretKey($api_secret_key);
60
+        $this->setVersion($version);
61
+        $this->setCurlTimeout($curl_timeout);
62
+        $this->setSkipByIp($this->skipByIp());
63
+    }
64
+
65
+    /**
66
+     * @param string $api_site_key
67
+     *
68
+     * @return ReCaptchaBuilder
69
+     */
70
+    public function setApiSiteKey(string $api_site_key): ReCaptchaBuilder {
71
+
72
+        $this->api_site_key = $api_site_key;
73
+
74
+        return $this;
75
+    }
76
+
77
+    /**
78
+     * @param string $api_secret_key
79
+     *
80
+     * @return ReCaptchaBuilder
81
+     */
82
+    public function setApiSecretKey(string $api_secret_key): ReCaptchaBuilder {
83
+
84
+        $this->api_secret_key = $api_secret_key;
85
+
86
+        return $this;
87
+    }
88
+
89
+    /**
90
+     * @param int $curl_timeout
91
+     * @return ReCaptchaBuilder
92
+     */
93
+    public function setCurlTimeout(int $curl_timeout): ReCaptchaBuilder {
94
+
95
+        $this->curl_timeout = $curl_timeout;
96
+
97
+        return $this;
98
+    }
99
+
100
+    /**
101
+     * @return int
102
+     */
103
+    public function getCurlTimeout(): int {
104
+
105
+        return $this->curl_timeout;
106
+    }
107
+
108
+    /**
109
+     * @param string $version
110
+     *
111
+     * @return ReCaptchaBuilder
112
+     */
113
+    public function setVersion(string $version): ReCaptchaBuilder {
114
+
115
+        $this->version = $version;
116
+
117
+        return $this;
118
+    }
119
+
120
+    /**
121
+     * @return string
122
+     */
123
+    public function getVersion(): string {
124
+
125
+        return $this->version;
126
+    }
127
+
128
+    /**
129
+     * @param bool $skip_by_ip
130
+     *
131
+     * @return ReCaptchaBuilder
132
+     */
133
+    public function setSkipByIp(bool $skip_by_ip): ReCaptchaBuilder {
134
+
135
+        $this->skip_by_ip = $skip_by_ip;
136
+
137
+        return $this;
138
+    }
139
+
140
+    /**
141
+     * @return array|mixed
142
+     */
143
+    public function getIpWhitelist() {
144
+        $whitelist = config('recaptcha.skip_ip', []);
145
+
146
+        if(!is_array($whitelist)) {
147
+            $whitelist = explode(',', $whitelist);
148
+        }
149
+
150
+        return $whitelist;
151
+    }
152
+
153
+    /**
154
+     * Checks whether the user IP address is among IPs "to be skipped"
155
+     *
156
+     * @return boolean
157
+     */
158
+    public function skipByIp(): bool {
159
+
160
+        return (in_array(request()->ip(), $this->getIpWhitelist()));
161
+    }
162
+
163
+    /**
164
+     * Write script HTML tag in you HTML code
165
+     * Insert before </head> tag
166
+     *
167
+     * @param string|null $formId
168
+     * @param array|null  $configuration
169
+     *
170
+     * @return string
171
+     * @throws Exception
172
+     */
173
+    public function htmlScriptTagJsApi(?string $formId = '', ?array $configuration = []): string {
174
+
175
+        if ($this->skip_by_ip) {
176
+            return '';
177
+        }
178
+
179
+        switch ($this->version) {
180
+            case 'v3':
181
+                $html = "<script src=\"https://www.google.com/recaptcha/api.js?render={$this->api_site_key}\"></script>";
182
+                break;
183
+            default:
184
+                $html = "<script src=\"https://www.google.com/recaptcha/api.js\" async defer></script>";
185
+        }
186
+
187
+        if ($this->version == 'invisible') {
188
+            if (!$formId) {
189
+                throw new Exception("formId required", 1);
190
+            }
191
+            $html .= '<script>
192 192
 		       function biscolabLaravelReCaptcha(token) {
193 193
 		         document.getElementById("' . $formId . '").submit();
194 194
 		       }
195 195
 		     </script>';
196
-		}
197
-		elseif ($this->version == 'v3') {
196
+        }
197
+        elseif ($this->version == 'v3') {
198 198
 
199
-			$action = array_get($configuration, 'action', 'homepage');
199
+            $action = array_get($configuration, 'action', 'homepage');
200 200
 
201
-			$js_custom_validation = array_get($configuration, 'custom_validation', '');
201
+            $js_custom_validation = array_get($configuration, 'custom_validation', '');
202 202
 
203
-			// Check if set custom_validation. That function will override default fetch validation function
204
-			if ($js_custom_validation) {
203
+            // Check if set custom_validation. That function will override default fetch validation function
204
+            if ($js_custom_validation) {
205 205
 
206
-				$validate_function = ($js_custom_validation) ? "{$js_custom_validation}(token);" : '';
207
-			}
208
-			else {
206
+                $validate_function = ($js_custom_validation) ? "{$js_custom_validation}(token);" : '';
207
+            }
208
+            else {
209 209
 
210
-				$js_then_callback = array_get($configuration, 'callback_then', '');
211
-				$js_callback_catch = array_get($configuration, 'callback_catch', '');
210
+                $js_then_callback = array_get($configuration, 'callback_then', '');
211
+                $js_callback_catch = array_get($configuration, 'callback_catch', '');
212 212
 
213
-				$js_then_callback = ($js_then_callback) ? "{$js_then_callback}(response)" : '';
214
-				$js_callback_catch = ($js_callback_catch) ? "{$js_callback_catch}(err)" : '';
213
+                $js_then_callback = ($js_then_callback) ? "{$js_then_callback}(response)" : '';
214
+                $js_callback_catch = ($js_callback_catch) ? "{$js_callback_catch}(err)" : '';
215 215
 
216
-				$validate_function = "
216
+                $validate_function = "
217 217
                 fetch('/" . config('recaptcha.default_validation_route', 'biscolab-recaptcha/validate') . "?" . config('recaptcha.default_token_parameter_name', 'token') . "=' + token, {
218 218
                     headers: {
219 219
                         \"X-Requested-With\": \"XMLHttpRequest\",
@@ -226,9 +226,9 @@  discard block
 block discarded – undo
226 226
                 .catch(function(err) {
227 227
                     {$js_callback_catch}
228 228
                 });";
229
-			}
229
+            }
230 230
 
231
-			$html .= "<script>
231
+            $html .= "<script>
232 232
                     var csrfToken = document.head.querySelector('meta[name=\"csrf-token\"]');
233 233
                   grecaptcha.ready(function() {
234 234
                       grecaptcha.execute('{$this->api_site_key}', {action: '{$action}'}).then(function(token) {
@@ -236,90 +236,90 @@  discard block
 block discarded – undo
236 236
                       });
237 237
                   });
238 238
 		     </script>";
239
-		}
240
-
241
-		return $html;
242
-	}
243
-
244
-	/**
245
-	 * @param array|null $configuration
246
-	 *
247
-	 * @return string
248
-	 */
249
-	public function htmlScriptTagJsApiV3(?array $configuration = []): string {
250
-
251
-		return $this->htmlScriptTagJsApi('', $configuration);
252
-	}
253
-
254
-	/**
255
-	 * Call out to reCAPTCHA and process the response
256
-	 *
257
-	 * @param string $response
258
-	 *
259
-	 * @return boolean|array
260
-	 */
261
-	public function validate($response) {
262
-
263
-		if ($this->skip_by_ip) {
264
-			if ($this->returnArray()) {
265
-				// Add 'skip_by_ip' field to response
266
-				return [
267
-					'skip_by_ip' => true,
268
-					'score'      => 0.9,
269
-					'success'    => true
270
-				];
271
-			}
272
-
273
-			return true;
274
-		}
275
-
276
-		$params = http_build_query([
277
-			'secret'   => $this->api_secret_key,
278
-			'remoteip' => request()->getClientIp(),
279
-			'response' => $response,
280
-		]);
281
-
282
-		$url = $this->api_url . '?' . $params;
283
-
284
-		if (function_exists('curl_version')) {
285
-			$curl = curl_init($url);
286
-			curl_setopt($curl, CURLOPT_HEADER, false);
287
-			curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
288
-			curl_setopt($curl, CURLOPT_TIMEOUT, $this->curl_timeout);
289
-			curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
290
-			$curl_response = curl_exec($curl);
291
-		}
292
-		else {
293
-			$curl_response = file_get_contents($url);
294
-		}
295
-
296
-		if (is_null($curl_response) || empty($curl_response)) {
297
-			if ($this->returnArray()) {
298
-				// Add 'error' field to response
299
-				return [
300
-					'error'   => 'cURL response empty',
301
-					'score'   => 0.1,
302
-					'success' => false
303
-				];
304
-			}
305
-
306
-			return false;
307
-		}
308
-		$response = json_decode(trim($curl_response), true);
309
-
310
-		if ($this->returnArray()) {
311
-			return $response;
312
-		}
313
-
314
-		return $response['success'];
315
-
316
-	}
317
-
318
-	/**
319
-	 * @return bool
320
-	 */
321
-	protected function returnArray(): bool {
322
-
323
-		return ($this->version == 'v3');
324
-	}
239
+        }
240
+
241
+        return $html;
242
+    }
243
+
244
+    /**
245
+     * @param array|null $configuration
246
+     *
247
+     * @return string
248
+     */
249
+    public function htmlScriptTagJsApiV3(?array $configuration = []): string {
250
+
251
+        return $this->htmlScriptTagJsApi('', $configuration);
252
+    }
253
+
254
+    /**
255
+     * Call out to reCAPTCHA and process the response
256
+     *
257
+     * @param string $response
258
+     *
259
+     * @return boolean|array
260
+     */
261
+    public function validate($response) {
262
+
263
+        if ($this->skip_by_ip) {
264
+            if ($this->returnArray()) {
265
+                // Add 'skip_by_ip' field to response
266
+                return [
267
+                    'skip_by_ip' => true,
268
+                    'score'      => 0.9,
269
+                    'success'    => true
270
+                ];
271
+            }
272
+
273
+            return true;
274
+        }
275
+
276
+        $params = http_build_query([
277
+            'secret'   => $this->api_secret_key,
278
+            'remoteip' => request()->getClientIp(),
279
+            'response' => $response,
280
+        ]);
281
+
282
+        $url = $this->api_url . '?' . $params;
283
+
284
+        if (function_exists('curl_version')) {
285
+            $curl = curl_init($url);
286
+            curl_setopt($curl, CURLOPT_HEADER, false);
287
+            curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
288
+            curl_setopt($curl, CURLOPT_TIMEOUT, $this->curl_timeout);
289
+            curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
290
+            $curl_response = curl_exec($curl);
291
+        }
292
+        else {
293
+            $curl_response = file_get_contents($url);
294
+        }
295
+
296
+        if (is_null($curl_response) || empty($curl_response)) {
297
+            if ($this->returnArray()) {
298
+                // Add 'error' field to response
299
+                return [
300
+                    'error'   => 'cURL response empty',
301
+                    'score'   => 0.1,
302
+                    'success' => false
303
+                ];
304
+            }
305
+
306
+            return false;
307
+        }
308
+        $response = json_decode(trim($curl_response), true);
309
+
310
+        if ($this->returnArray()) {
311
+            return $response;
312
+        }
313
+
314
+        return $response['success'];
315
+
316
+    }
317
+
318
+    /**
319
+     * @return bool
320
+     */
321
+    protected function returnArray(): bool {
322
+
323
+        return ($this->version == 'v3');
324
+    }
325 325
 }
326 326
\ No newline at end of file
Please login to merge, or discard this patch.
Braces   +3 added lines, -6 removed lines patch added patch discarded remove patch
@@ -193,8 +193,7 @@  discard block
 block discarded – undo
193 193
 		         document.getElementById("' . $formId . '").submit();
194 194
 		       }
195 195
 		     </script>';
196
-		}
197
-		elseif ($this->version == 'v3') {
196
+		} elseif ($this->version == 'v3') {
198 197
 
199 198
 			$action = array_get($configuration, 'action', 'homepage');
200 199
 
@@ -204,8 +203,7 @@  discard block
 block discarded – undo
204 203
 			if ($js_custom_validation) {
205 204
 
206 205
 				$validate_function = ($js_custom_validation) ? "{$js_custom_validation}(token);" : '';
207
-			}
208
-			else {
206
+			} else {
209 207
 
210 208
 				$js_then_callback = array_get($configuration, 'callback_then', '');
211 209
 				$js_callback_catch = array_get($configuration, 'callback_catch', '');
@@ -288,8 +286,7 @@  discard block
 block discarded – undo
288 286
 			curl_setopt($curl, CURLOPT_TIMEOUT, $this->curl_timeout);
289 287
 			curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
290 288
 			$curl_response = curl_exec($curl);
291
-		}
292
-		else {
289
+		} else {
293 290
 			$curl_response = file_get_contents($url);
294 291
 		}
295 292
 
Please login to merge, or discard this patch.
src/ReCaptchaServiceProvider.php 2 patches
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -36,7 +36,7 @@  discard block
 block discarded – undo
36 36
 //		$this->loadRoutesFrom(__DIR__ . '/routes/routes.php');
37 37
 		$this->registerRoutes();
38 38
 		$this->publishes([
39
-			__DIR__ . '/../config/recaptcha.php' => config_path('recaptcha.php'),
39
+			__DIR__.'/../config/recaptcha.php' => config_path('recaptcha.php'),
40 40
 		]);
41 41
 
42 42
 	}
@@ -46,7 +46,7 @@  discard block
 block discarded – undo
46 46
 	 */
47 47
 	public function addValidationRule() {
48 48
 
49
-		Validator::extendImplicit('recaptcha', function ($attribute, $value, $parameters, $validator) {
49
+		Validator::extendImplicit('recaptcha', function($attribute, $value, $parameters, $validator) {
50 50
 
51 51
 			return app('recaptcha')->validate($value);
52 52
 		}, trans('validation.recaptcha'));
@@ -60,7 +60,7 @@  discard block
 block discarded – undo
60 60
 	public function register() {
61 61
 
62 62
 		$this->mergeConfigFrom(
63
-			__DIR__ . '/../config/recaptcha.php', 'recaptcha'
63
+			__DIR__.'/../config/recaptcha.php', 'recaptcha'
64 64
 		);
65 65
 
66 66
 		$this->registerReCaptchaBuilder();
@@ -96,7 +96,7 @@  discard block
 block discarded – undo
96 96
 	 */
97 97
 	protected function registerReCaptchaBuilder() {
98 98
 
99
-		$this->app->singleton('recaptcha', function ($app) {
99
+		$this->app->singleton('recaptcha', function($app) {
100 100
 
101 101
 			$recaptcha_class = '';
102 102
 
Please login to merge, or discard this patch.
Indentation   +97 added lines, -97 removed lines patch added patch discarded remove patch
@@ -20,103 +20,103 @@
 block discarded – undo
20 20
  */
21 21
 class ReCaptchaServiceProvider extends ServiceProvider {
22 22
 
23
-	/**
24
-	 * Indicates if loading of the provider is deferred.
25
-	 *
26
-	 * @var bool
27
-	 */
28
-	protected $defer = false;
29
-
30
-	/**
31
-	 *
32
-	 */
33
-	public function boot() {
34
-
35
-		$this->addValidationRule();
23
+    /**
24
+     * Indicates if loading of the provider is deferred.
25
+     *
26
+     * @var bool
27
+     */
28
+    protected $defer = false;
29
+
30
+    /**
31
+     *
32
+     */
33
+    public function boot() {
34
+
35
+        $this->addValidationRule();
36 36
 //		$this->loadRoutesFrom(__DIR__ . '/routes/routes.php');
37
-		$this->registerRoutes();
38
-		$this->publishes([
39
-			__DIR__ . '/../config/recaptcha.php' => config_path('recaptcha.php'),
40
-		]);
41
-
42
-	}
43
-
44
-	/**
45
-	 * Extends Validator to include a recaptcha type
46
-	 */
47
-	public function addValidationRule() {
48
-
49
-		Validator::extendImplicit('recaptcha', function ($attribute, $value, $parameters, $validator) {
50
-
51
-			return app('recaptcha')->validate($value);
52
-		}, trans('validation.recaptcha'));
53
-	}
54
-
55
-	/**
56
-	 * Register the service provider.
57
-	 *
58
-	 * @return void
59
-	 */
60
-	public function register() {
61
-
62
-		$this->mergeConfigFrom(
63
-			__DIR__ . '/../config/recaptcha.php', 'recaptcha'
64
-		);
65
-
66
-		$this->registerReCaptchaBuilder();
67
-	}
68
-
69
-	/**
70
-	 * Get the services provided by the provider.
71
-	 *
72
-	 * @return array
73
-	 */
74
-	public function provides(): array {
75
-
76
-		return ['recaptcha'];
77
-	}
78
-
79
-	/**
80
-	 * @return ReCaptchaServiceProvider
81
-	 *
82
-	 * @since v3.4.1
83
-	 */
84
-	protected function registerRoutes(): ReCaptchaServiceProvider {
85
-
86
-		Route::get(
87
-			config('recaptcha.default_validation_route', 'biscolab-recaptcha/validate'),
88
-			['uses' => 'Biscolab\ReCaptcha\Controllers\ReCaptchaController@validateV3']
89
-		)->middleware('web');
90
-
91
-		return $this;
92
-	}
93
-
94
-	/**
95
-	 * Register the HTML builder instance.
96
-	 *
97
-	 * @return void
98
-	 */
99
-	protected function registerReCaptchaBuilder() {
100
-
101
-		$this->app->singleton('recaptcha', function ($app) {
102
-
103
-			$recaptcha_class = '';
104
-
105
-			switch (config('recaptcha.version')) {
106
-				case 'v3' :
107
-					$recaptcha_class = ReCaptchaBuilderV3::class;
108
-					break;
109
-				case 'v2' :
110
-					$recaptcha_class = ReCaptchaBuilderV2::class;
111
-					break;
112
-				case 'invisible':
113
-					$recaptcha_class = ReCaptchaBuilderInvisible::class;
114
-					break;
115
-			}
116
-
117
-			return new $recaptcha_class(config('recaptcha.api_site_key'), config('recaptcha.api_secret_key'), config('recaptcha.curl_timeout'));
118
-
119
-		});
120
-	}
37
+        $this->registerRoutes();
38
+        $this->publishes([
39
+            __DIR__ . '/../config/recaptcha.php' => config_path('recaptcha.php'),
40
+        ]);
41
+
42
+    }
43
+
44
+    /**
45
+     * Extends Validator to include a recaptcha type
46
+     */
47
+    public function addValidationRule() {
48
+
49
+        Validator::extendImplicit('recaptcha', function ($attribute, $value, $parameters, $validator) {
50
+
51
+            return app('recaptcha')->validate($value);
52
+        }, trans('validation.recaptcha'));
53
+    }
54
+
55
+    /**
56
+     * Register the service provider.
57
+     *
58
+     * @return void
59
+     */
60
+    public function register() {
61
+
62
+        $this->mergeConfigFrom(
63
+            __DIR__ . '/../config/recaptcha.php', 'recaptcha'
64
+        );
65
+
66
+        $this->registerReCaptchaBuilder();
67
+    }
68
+
69
+    /**
70
+     * Get the services provided by the provider.
71
+     *
72
+     * @return array
73
+     */
74
+    public function provides(): array {
75
+
76
+        return ['recaptcha'];
77
+    }
78
+
79
+    /**
80
+     * @return ReCaptchaServiceProvider
81
+     *
82
+     * @since v3.4.1
83
+     */
84
+    protected function registerRoutes(): ReCaptchaServiceProvider {
85
+
86
+        Route::get(
87
+            config('recaptcha.default_validation_route', 'biscolab-recaptcha/validate'),
88
+            ['uses' => 'Biscolab\ReCaptcha\Controllers\ReCaptchaController@validateV3']
89
+        )->middleware('web');
90
+
91
+        return $this;
92
+    }
93
+
94
+    /**
95
+     * Register the HTML builder instance.
96
+     *
97
+     * @return void
98
+     */
99
+    protected function registerReCaptchaBuilder() {
100
+
101
+        $this->app->singleton('recaptcha', function ($app) {
102
+
103
+            $recaptcha_class = '';
104
+
105
+            switch (config('recaptcha.version')) {
106
+                case 'v3' :
107
+                    $recaptcha_class = ReCaptchaBuilderV3::class;
108
+                    break;
109
+                case 'v2' :
110
+                    $recaptcha_class = ReCaptchaBuilderV2::class;
111
+                    break;
112
+                case 'invisible':
113
+                    $recaptcha_class = ReCaptchaBuilderInvisible::class;
114
+                    break;
115
+            }
116
+
117
+            return new $recaptcha_class(config('recaptcha.api_site_key'), config('recaptcha.api_secret_key'), config('recaptcha.curl_timeout'));
118
+
119
+        });
120
+    }
121 121
 
122 122
 }
Please login to merge, or discard this patch.
tests/ReCaptchaConfigurationTest.php 1 patch
Indentation   +35 added lines, -35 removed lines patch added patch discarded remove patch
@@ -22,47 +22,47 @@
 block discarded – undo
22 22
  */
23 23
 class ReCaptchaConfigurationTest extends TestCase {
24 24
 
25
-	/**
26
-	 * @var ReCaptchaBuilder
27
-	 */
28
-	protected $recaptcha;
25
+    /**
26
+     * @var ReCaptchaBuilder
27
+     */
28
+    protected $recaptcha;
29 29
 
30
-	/**
31
-	 * @test
32
-	 */
33
-	public function testSkipIpWhiteListIsArray() {
30
+    /**
31
+     * @test
32
+     */
33
+    public function testSkipIpWhiteListIsArray() {
34 34
 
35
-		$ip_whitelist = $this->recaptcha->getIpWhitelist();
36
-		$this->assertTrue(is_array($ip_whitelist));
37
-		$this->assertCount(2, $ip_whitelist);
38
-	}
35
+        $ip_whitelist = $this->recaptcha->getIpWhitelist();
36
+        $this->assertTrue(is_array($ip_whitelist));
37
+        $this->assertCount(2, $ip_whitelist);
38
+    }
39 39
 
40
-	/**
41
-	 * @test
42
-	 */
43
-	public function testCurlTimeoutIsSet() {
44
-		$this->assertEquals($this->recaptcha->getCurlTimeout(), 3);
45
-	}
40
+    /**
41
+     * @test
42
+     */
43
+    public function testCurlTimeoutIsSet() {
44
+        $this->assertEquals($this->recaptcha->getCurlTimeout(), 3);
45
+    }
46 46
 
47
-	/**
48
-	 * Define environment setup.
49
-	 *
50
-	 * @param  \Illuminate\Foundation\Application $app
51
-	 *
52
-	 * @return void
53
-	 */
54
-	protected function getEnvironmentSetUp($app) {
47
+    /**
48
+     * Define environment setup.
49
+     *
50
+     * @param  \Illuminate\Foundation\Application $app
51
+     *
52
+     * @return void
53
+     */
54
+    protected function getEnvironmentSetUp($app) {
55 55
 
56
-		$app['config']->set('recaptcha.skip_ip', '10.0.0.1,10.0.0.2');
57
-	}
56
+        $app['config']->set('recaptcha.skip_ip', '10.0.0.1,10.0.0.2');
57
+    }
58 58
 
59
-	/**
60
-	 * Setup the test environment.
61
-	 */
62
-	protected function setUp(): void {
59
+    /**
60
+     * Setup the test environment.
61
+     */
62
+    protected function setUp(): void {
63 63
 
64
-		parent::setUp(); // TODO: Change the autogenerated stub
64
+        parent::setUp(); // TODO: Change the autogenerated stub
65 65
 
66
-		$this->recaptcha = new ReCaptchaBuilderV2('api_site_key', 'api_secret_key', 3);
67
-	}
66
+        $this->recaptcha = new ReCaptchaBuilderV2('api_site_key', 'api_secret_key', 3);
67
+    }
68 68
 }
69 69
\ No newline at end of file
Please login to merge, or discard this patch.