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/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.
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.
tests/ReCaptchaTest.php 1 patch
Indentation   +52 added lines, -52 removed lines patch added patch discarded remove patch
@@ -20,73 +20,73 @@
 block discarded – undo
20 20
  */
21 21
 class ReCaptchaTest extends TestCase {
22 22
 
23
-	protected $recaptcha_invisible = null;
23
+    protected $recaptcha_invisible = null;
24 24
 
25
-	protected $recaptcha_v2        = null;
25
+    protected $recaptcha_v2        = null;
26 26
 
27
-	/**
28
-	 * @tests
29
-	 */
30
-	public function testHtmlScriptTagJsApiGetHtmlScriptTag() {
27
+    /**
28
+     * @tests
29
+     */
30
+    public function testHtmlScriptTagJsApiGetHtmlScriptTag() {
31 31
 
32
-		$r = ReCaptcha::htmlScriptTagJsApi();
33
-		$this->assertEquals('<script src="https://www.google.com/recaptcha/api.js" async defer></script>', $r);
34
-	}
32
+        $r = ReCaptcha::htmlScriptTagJsApi();
33
+        $this->assertEquals('<script src="https://www.google.com/recaptcha/api.js" async defer></script>', $r);
34
+    }
35 35
 
36
-	/**
37
-	 * @test
38
-	 */
39
-	public function testReCaptchaInvisibleHtmlFormButtonDefault() {
36
+    /**
37
+     * @test
38
+     */
39
+    public function testReCaptchaInvisibleHtmlFormButtonDefault() {
40 40
 
41
-		$recaptcha = $this->recaptcha_invisible;
42
-		$html_button = $recaptcha->htmlFormButton();
43
-		$this->assertEquals('<button class="g-recaptcha" data-sitekey="api_site_key" data-callback="biscolabLaravelReCaptcha">Submit</button>', $html_button);
44
-	}
41
+        $recaptcha = $this->recaptcha_invisible;
42
+        $html_button = $recaptcha->htmlFormButton();
43
+        $this->assertEquals('<button class="g-recaptcha" data-sitekey="api_site_key" data-callback="biscolabLaravelReCaptcha">Submit</button>', $html_button);
44
+    }
45 45
 
46
-	/**
47
-	 * @test
48
-	 */
49
-	public function testReCaptchaInvisibleHtmlFormButtonCustom() {
46
+    /**
47
+     * @test
48
+     */
49
+    public function testReCaptchaInvisibleHtmlFormButtonCustom() {
50 50
 
51
-		$recaptcha = $this->recaptcha_invisible;
52
-		$html_button = $recaptcha->htmlFormButton('Custom Text');
53
-		$this->assertEquals('<button class="g-recaptcha" data-sitekey="api_site_key" data-callback="biscolabLaravelReCaptcha">Custom Text</button>', $html_button);
54
-	}
51
+        $recaptcha = $this->recaptcha_invisible;
52
+        $html_button = $recaptcha->htmlFormButton('Custom Text');
53
+        $this->assertEquals('<button class="g-recaptcha" data-sitekey="api_site_key" data-callback="biscolabLaravelReCaptcha">Custom Text</button>', $html_button);
54
+    }
55 55
 
56
-	/**
57
-	 * @test
58
-	 */
59
-	public function testReCaptchaV2HtmlFormSnippet() {
56
+    /**
57
+     * @test
58
+     */
59
+    public function testReCaptchaV2HtmlFormSnippet() {
60 60
 
61
-		$recaptcha = $this->recaptcha_v2;
62
-		$html_snippet = $recaptcha->htmlFormSnippet();
63
-		$this->assertEquals('<div class="g-recaptcha" data-sitekey="api_site_key"></div>', $html_snippet);
64
-	}
61
+        $recaptcha = $this->recaptcha_v2;
62
+        $html_snippet = $recaptcha->htmlFormSnippet();
63
+        $this->assertEquals('<div class="g-recaptcha" data-sitekey="api_site_key"></div>', $html_snippet);
64
+    }
65 65
 
66
-	/**
67
-	 * @test
68
-	 * @expectedException     \Error
69
-	 */
70
-	public function testReCaptchaInvisibleHtmlFormSnippetShouldThrowError() {
66
+    /**
67
+     * @test
68
+     * @expectedException     \Error
69
+     */
70
+    public function testReCaptchaInvisibleHtmlFormSnippetShouldThrowError() {
71 71
 
72
-		$this->recaptcha_invisible->htmlFormSnippet();
73
-	}
72
+        $this->recaptcha_invisible->htmlFormSnippet();
73
+    }
74 74
 
75
-	/**
76
-	 * @test
77
-	 * @expectedException     \Error
78
-	 */
79
-	public function testReCaptchaV2htmlFormButtonShouldThrowError() {
75
+    /**
76
+     * @test
77
+     * @expectedException     \Error
78
+     */
79
+    public function testReCaptchaV2htmlFormButtonShouldThrowError() {
80 80
 
81
-		$this->recaptcha_v2->htmlFormButton();
82
-	}
81
+        $this->recaptcha_v2->htmlFormButton();
82
+    }
83 83
 
84
-	protected function setUp(): void {
84
+    protected function setUp(): void {
85 85
 
86
-		parent::setUp(); // TODO: Change the autogenerated stub
86
+        parent::setUp(); // TODO: Change the autogenerated stub
87 87
 
88
-		$this->recaptcha_invisible = new ReCaptchaBuilderInvisible('api_site_key', 'api_secret_key', 3);
89
-		$this->recaptcha_v2 = new ReCaptchaBuilderV2('api_site_key', 'api_secret_key', 3);
88
+        $this->recaptcha_invisible = new ReCaptchaBuilderInvisible('api_site_key', 'api_secret_key', 3);
89
+        $this->recaptcha_v2 = new ReCaptchaBuilderV2('api_site_key', 'api_secret_key', 3);
90 90
 
91
-	}
91
+    }
92 92
 }
93 93
\ No newline at end of file
Please login to merge, or discard this patch.
tests/ReCaptchaV3Test.php 1 patch
Indentation   +89 added lines, -89 removed lines patch added patch discarded remove patch
@@ -20,93 +20,93 @@
 block discarded – undo
20 20
  */
21 21
 class ReCaptchaV3Test extends TestCase {
22 22
 
23
-	protected $recaptcha_v3 = null;
24
-
25
-	/**
26
-	 * @test
27
-	 */
28
-	public function testGetApiVersion() {
29
-
30
-		$this->assertEquals($this->recaptcha_v3->getVersion(), 'v3');
31
-	}
32
-
33
-	/**
34
-	 * @test
35
-	 */
36
-	public function testHtmlScriptTagJsApiV3GetHtmlScriptTag() {
37
-
38
-		$r = $this->recaptcha_v3->htmlScriptTagJsApiV3();
39
-		$this->assertRegexp('/csrfToken/', $r);
40
-	}
41
-
42
-	/**
43
-	 * @test
44
-	 */
45
-	public function testAction() {
46
-
47
-		$r = $this->recaptcha_v3->htmlScriptTagJsApiV3(['action' => 'someAction']);
48
-		$this->assertRegexp('/someAction/', $r);
49
-	}
50
-
51
-	/**
52
-	 * @test
53
-	 */
54
-	public function testFetchCallbackFunction() {
55
-
56
-		$r = $this->recaptcha_v3->htmlScriptTagJsApiV3(['callback_then' => 'functionCallbackThen']);
57
-		$this->assertRegexp('/functionCallbackThen\(response\)/', $r);
58
-	}
59
-
60
-	/**
61
-	 * @test
62
-	 */
63
-	public function testcCatchCallbackFunction() {
64
-
65
-		$r = $this->recaptcha_v3->htmlScriptTagJsApiV3(['callback_catch' => 'functionCallbackCatch']);
66
-		$this->assertRegexp('/functionCallbackCatch\(err\)/', $r);
67
-	}
68
-
69
-	/**
70
-	 * @test
71
-	 */
72
-	public function testCustomValidationFunction() {
73
-
74
-		$r = $this->recaptcha_v3->htmlScriptTagJsApiV3(['custom_validation' => 'functionCustomValidation']);
75
-		$this->assertRegexp('/functionCustomValidation\(token\)/', $r);
76
-	}
77
-
78
-	/**
79
-	 * @test
80
-	 */
81
-	public function testValidateController() {
82
-
83
-		$controller = App::make(ReCaptchaController::class);
84
-		$return = $controller->validateV3();
85
-
86
-		$this->assertArrayHasKey("success", $return);
87
-		$this->assertArrayHasKey("error-codes", $return);
88
-	}
89
-
90
-	/**
91
-	 * Define environment setup.
92
-	 *
93
-	 * @param  \Illuminate\Foundation\Application $app
94
-	 *
95
-	 * @return void
96
-	 */
97
-	protected function getEnvironmentSetUp($app) {
98
-
99
-		$app['config']->set('recaptcha.version', 'v3');
100
-	}
101
-
102
-	/**
103
-	 * Setup the test environment.
104
-	 */
105
-	protected function setUp(): void {
106
-
107
-		parent::setUp(); // TODO: Change the autogenerated stub
108
-
109
-		$this->recaptcha_v3 = new ReCaptchaBuilderV3('api_site_key', 'api_secret_key', 3);
110
-
111
-	}
23
+    protected $recaptcha_v3 = null;
24
+
25
+    /**
26
+     * @test
27
+     */
28
+    public function testGetApiVersion() {
29
+
30
+        $this->assertEquals($this->recaptcha_v3->getVersion(), 'v3');
31
+    }
32
+
33
+    /**
34
+     * @test
35
+     */
36
+    public function testHtmlScriptTagJsApiV3GetHtmlScriptTag() {
37
+
38
+        $r = $this->recaptcha_v3->htmlScriptTagJsApiV3();
39
+        $this->assertRegexp('/csrfToken/', $r);
40
+    }
41
+
42
+    /**
43
+     * @test
44
+     */
45
+    public function testAction() {
46
+
47
+        $r = $this->recaptcha_v3->htmlScriptTagJsApiV3(['action' => 'someAction']);
48
+        $this->assertRegexp('/someAction/', $r);
49
+    }
50
+
51
+    /**
52
+     * @test
53
+     */
54
+    public function testFetchCallbackFunction() {
55
+
56
+        $r = $this->recaptcha_v3->htmlScriptTagJsApiV3(['callback_then' => 'functionCallbackThen']);
57
+        $this->assertRegexp('/functionCallbackThen\(response\)/', $r);
58
+    }
59
+
60
+    /**
61
+     * @test
62
+     */
63
+    public function testcCatchCallbackFunction() {
64
+
65
+        $r = $this->recaptcha_v3->htmlScriptTagJsApiV3(['callback_catch' => 'functionCallbackCatch']);
66
+        $this->assertRegexp('/functionCallbackCatch\(err\)/', $r);
67
+    }
68
+
69
+    /**
70
+     * @test
71
+     */
72
+    public function testCustomValidationFunction() {
73
+
74
+        $r = $this->recaptcha_v3->htmlScriptTagJsApiV3(['custom_validation' => 'functionCustomValidation']);
75
+        $this->assertRegexp('/functionCustomValidation\(token\)/', $r);
76
+    }
77
+
78
+    /**
79
+     * @test
80
+     */
81
+    public function testValidateController() {
82
+
83
+        $controller = App::make(ReCaptchaController::class);
84
+        $return = $controller->validateV3();
85
+
86
+        $this->assertArrayHasKey("success", $return);
87
+        $this->assertArrayHasKey("error-codes", $return);
88
+    }
89
+
90
+    /**
91
+     * Define environment setup.
92
+     *
93
+     * @param  \Illuminate\Foundation\Application $app
94
+     *
95
+     * @return void
96
+     */
97
+    protected function getEnvironmentSetUp($app) {
98
+
99
+        $app['config']->set('recaptcha.version', 'v3');
100
+    }
101
+
102
+    /**
103
+     * Setup the test environment.
104
+     */
105
+    protected function setUp(): void {
106
+
107
+        parent::setUp(); // TODO: Change the autogenerated stub
108
+
109
+        $this->recaptcha_v3 = new ReCaptchaBuilderV3('api_site_key', 'api_secret_key', 3);
110
+
111
+    }
112 112
 }
113 113
\ No newline at end of file
Please login to merge, or discard this patch.
src/ReCaptchaBuilderV3.php 1 patch
Indentation   +10 added lines, -10 removed lines patch added patch discarded remove patch
@@ -16,16 +16,16 @@
 block discarded – undo
16 16
  */
17 17
 class ReCaptchaBuilderV3 extends ReCaptchaBuilder {
18 18
 
19
-	/**
20
-	 * ReCaptchaBuilderV3 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
+     * ReCaptchaBuilderV3 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, 'v3', $curl_timeout);
29
-	}
28
+        parent::__construct($api_site_key, $api_secret_key, 'v3', $curl_timeout);
29
+    }
30 30
 
31 31
 }
32 32
\ No newline at end of file
Please login to merge, or discard this patch.
src/ReCaptchaServiceProvider.php 1 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.