Passed
Push — master ( 042452...c272a3 )
by Paul
05:20
created

PublicController::routerSubmitReview()   A

Complexity

Conditions 3
Paths 2

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 12

Importance

Changes 0
Metric Value
cc 3
eloc 3
nc 2
nop 1
dl 0
loc 5
ccs 0
cts 4
cp 0
crap 12
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
namespace GeminiLabs\SiteReviews\Controllers;
4
5
use GeminiLabs\SiteReviews\Application;
6
use GeminiLabs\SiteReviews\Commands\CreateReview;
7
use GeminiLabs\SiteReviews\Controllers\Controller;
8
use GeminiLabs\SiteReviews\Database\OptionManager;
9
use GeminiLabs\SiteReviews\Handlers\EnqueuePublicAssets;
10
use GeminiLabs\SiteReviews\Modules\Validator\ValidateReview;
11
12
class PublicController extends Controller
13
{
14
	/**
15
	 * @return void
16
	 * @action wp_enqueue_scripts
17
	 */
18
	public function enqueueAssets()
19
	{
20
		(new EnqueuePublicAssets)->handle();
21
	}
22
23
	/**
24
	 * @return string
25
	 * @filter script_loader_tag
26
	 */
27
	public function filterEnqueuedScripts( $tag, $handle )
28
	{
29
		return $handle == Application::ID.'/google-recaptcha'
30
			&& glsr( OptionManager::class )->get( 'settings.submissions.recaptcha.integration' ) == 'custom'
31
			? str_replace( ' src=', ' async defer src=', $tag )
32
			: $tag;
33
	}
34
35
	/**
36
	 * Add a variable to query_vars for custom pagination
37
	 * @param array $vars
38
	 * @return array
39
	 * @filter query_vars
40
	 */
41
	public function filterQueryVars( $vars )
42
	{
43
		$vars[] = Application::PAGED_QUERY_VAR;
44
		return $vars;
45
	}
46
47
	/**
48
	 * @return mixed
49
	 */
50
	public function routerSubmitReview( array $request )
51
	{
52
		$validated = glsr( ValidateReview::class )->validate( $request );
53
		if( !empty( $validated->error ) || $validated->recaptchaIsUnset )return;
54
		$this->execute( new CreateReview( $validated->request ));
55
	}
56
}
57