Passed
Push — master ( a74976...b3d616 )
by Paul
03:42
created

AjaxController::routerChangeReviewStatus()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 1
dl 0
loc 3
ccs 0
cts 2
cp 0
crap 2
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace GeminiLabs\SiteReviews\Controllers;
4
5
use GeminiLabs\SiteReviews\Commands\ChangeStatus;
6
use GeminiLabs\SiteReviews\Commands\TogglePinned;
7
use GeminiLabs\SiteReviews\Controllers\AdminController;
8
use GeminiLabs\SiteReviews\Controllers\Controller;
9
use GeminiLabs\SiteReviews\Controllers\PublicController;
10
use GeminiLabs\SiteReviews\Database;
11
use GeminiLabs\SiteReviews\Modules\Console;
12
use GeminiLabs\SiteReviews\Modules\Html;
13
use GeminiLabs\SiteReviews\Modules\Notice;
14
use GeminiLabs\SiteReviews\Modules\Session;
15
use GeminiLabs\SiteReviews\Modules\Translator;
16
use WP_Query;
17
18
class AjaxController extends Controller
19
{
20
	/**
21
	 * @return void
22
	 */
23
	public function routerChangeStatus( array $request )
24
	{
25
		wp_send_json_success( $this->execute( new ChangeStatus( $request )));
26
	}
27
28
	/**
29
	 * @return void
30
	 */
31
	public function routerClearConsole()
32
	{
33
		glsr( AdminController::class )->routerClearConsole();
34
		wp_send_json_success([
35
			'console' => glsr( Console::class )->get(),
36
			'notices' => glsr( Notice::class )->get(),
37
		]);
38
	}
39
40
	/**
41
	 * @return void
42
	 */
43
	public function routerCountReviews()
44
	{
45
		glsr( AdminController::class )->routerCountReviews();
46
		wp_send_json_success([
47
			'notices' => glsr( Notice::class )->get(),
48
		]);
49
	}
50
51
	/**
52
	 * @return void
53
	 */
54
	public function routerMceShortcode( array $request )
55
	{
56
		$shortcode = $request['shortcode'];
57
		$response = false;
58
		if( array_key_exists( $shortcode, glsr()->mceShortcodes )) {
59
			$data = glsr()->mceShortcodes[$shortcode];
60
			if( !empty( $data['errors'] )) {
61
				$data['btn_okay'] = [esc_html__( 'Okay', 'site-reviews' )];
62
			}
63
			$response = [
64
				'body' => $data['fields'],
65
				'close' => $data['btn_close'],
66
				'ok' => $data['btn_okay'],
67
				'shortcode' => $shortcode,
68
				'title' => $data['title'],
69
			];
70
		}
71
		wp_send_json_success( $response );
72
	}
73
74
	/**
75
	 * @return void
76
	 */
77
	public function routerSearchPosts( array $request )
78
	{
79
		$results = glsr( Database::class )->searchPosts( $request['search'] );
80
		wp_send_json_success([
81
			'empty' => '<div>'.__( 'Nothing found.', 'site-reviews' ).'</div>',
82
			'items' => $results,
83
		]);
84
	}
85
86
	/**
87
	 * @return void
88
	 */
89
	public function routerSearchTranslations( array $request )
90
	{
91
		if( empty( $request['exclude'] )) {
92
			$request['exclude'] = [];
93
		}
94
		$results = glsr( Translator::class )
95
			->search( $request['search'] )
96
			->exclude()
97
			->exclude( $request['exclude'] )
98
			->renderResults();
99
		wp_send_json_success([
100
			'empty' => '<div>'.__( 'Nothing found.', 'site-reviews' ).'</div>',
101
			'items' => $results,
102
		]);
103
	}
104
105
	/**
106
	 * @return void
107
	 */
108 1
	public function routerSubmitReview( array $request )
109
	{
110 1
		glsr( PublicController::class )->routerSubmitReview( $request );
111
		$data = [
112 1
			'errors' => glsr( Session::class )->get( $request['form_id'].'errors', false, true ),
113 1
			'message' => glsr( Session::class )->get( $request['form_id'].'message', '', true ),
114 1
			'recaptcha' => glsr( Session::class )->get( $request['form_id'].'recaptcha', false, true ),
115
		];
116 1
		if( !wp_validate_boolean( $data['errors'] )) {
117 1
			glsr( Session::class )->clear();
118 1
			wp_send_json_success( $data );
119
		}
120
		wp_send_json_error( $data );
121
	}
122
123
	/**
124
	 * @return void
125
	 */
126
	public function routerTogglePinned( array $request )
127
	{
128
		$isPinned = $this->execute( new TogglePinned( $request ));
129
		wp_send_json_success([
130
			'notices' => glsr( Notice::class )->get(),
131
			'pinned' => $isPinned,
132
		]);
133
	}
134
}
135