Passed
Push — master ( 8a0962...507d84 )
by Paul
03:52
created

AjaxController::routerFetchConsole()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 4
nc 1
nop 0
dl 0
loc 6
ccs 0
cts 5
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 routerFetchConsole()
78
	{
79
		glsr( AdminController::class )->routerFetchConsole();
80
		wp_send_json_success([
81
			'console' => glsr( Console::class )->get(),
82
			'notices' => glsr( Notice::class )->get(),
83
		]);
84
	}
85
86
	/**
87
	 * @return void
88
	 */
89
	public function routerSearchPosts( array $request )
90
	{
91
		$results = glsr( Database::class )->searchPosts( $request['search'] );
92
		wp_send_json_success([
93
			'empty' => '<div>'.__( 'Nothing found.', 'site-reviews' ).'</div>',
94
			'items' => $results,
95
		]);
96
	}
97
98
	/**
99
	 * @return void
100
	 */
101
	public function routerSearchTranslations( array $request )
102
	{
103
		if( empty( $request['exclude'] )) {
104
			$request['exclude'] = [];
105
		}
106
		$results = glsr( Translator::class )
107
			->search( $request['search'] )
108
			->exclude()
109
			->exclude( $request['exclude'] )
110
			->renderResults();
111
		wp_send_json_success([
112
			'empty' => '<div>'.__( 'Nothing found.', 'site-reviews' ).'</div>',
113
			'items' => $results,
114
		]);
115
	}
116
117
	/**
118
	 * @return void
119
	 */
120 1
	public function routerSubmitReview( array $request )
121
	{
122 1
		glsr( PublicController::class )->routerSubmitReview( $request );
123
		$data = [
124 1
			'errors' => glsr( Session::class )->get( $request['form_id'].'errors', false, true ),
125 1
			'message' => glsr( Session::class )->get( $request['form_id'].'message', '', true ),
126 1
			'recaptcha' => glsr( Session::class )->get( $request['form_id'].'recaptcha', false, true ),
127
		];
128 1
		if( !wp_validate_boolean( $data['errors'] )) {
129 1
			glsr( Session::class )->clear();
130 1
			wp_send_json_success( $data );
131
		}
132
		wp_send_json_error( $data );
133
	}
134
135
	/**
136
	 * @return void
137
	 */
138
	public function routerTogglePinned( array $request )
139
	{
140
		$isPinned = $this->execute( new TogglePinned( $request ));
141
		wp_send_json_success([
142
			'notices' => glsr( Notice::class )->get(),
143
			'pinned' => $isPinned,
144
		]);
145
	}
146
}
147