Passed
Push — master ( 498725...4036bc )
by Paul
04:49
created

AjaxController::routerClearConsole()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
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 routerChangeAssignedTo( array $request )
24
	{
25
		wp_send_json( glsr( Html::class )->renderPartial( 'link', [
26
			'post_id' => $request['ID'],
27
		]));
28
	}
29
30
	/**
31
	 * @return void
32
	 */
33
	public function routerChangeReviewStatus( array $request )
34
	{
35
		wp_send_json( $this->execute( new ChangeStatus( $request )));
36
	}
37
38
	/**
39
	 * @return void
40
	 */
41
	public function routerClearConsole()
42
	{
43
		glsr( AdminController::class )->routerClearConsole();
44
		wp_send_json([
45
			'console' => glsr( Console::class )->get(),
46
			'notices' => glsr( Notice::class )->get(),
47
		]);
48
	}
49
50
	/**
51
	 * @return void
52
	 */
53
	public function routerMceShortcode( array $request )
54
	{
55
		$shortcode = $request['shortcode'];
56
		$response = false;
57
		if( array_key_exists( $shortcode, glsr()->mceShortcodes )) {
58
			$data = glsr()->mceShortcodes[$shortcode];
59
			if( !empty( $data['errors'] )) {
60
				$data['btn_okay'] = [esc_html__( 'Okay', 'site-reviews' )];
61
			}
62
			$response = [
63
				'body' => $data['fields'],
64
				'close' => $data['btn_close'],
65
				'ok' => $data['btn_okay'],
66
				'shortcode' => $shortcode,
67
				'title' => $data['title'],
68
			];
69
		}
70
		wp_send_json( $response );
71
	}
72
73
	/**
74
	 * @return void
75
	 */
76
	public function routerSearchPosts( array $request )
77
	{
78
		$results = glsr( Database::class )->searchPosts( $request['search'] );
79
		wp_send_json_success([
80
			'empty' => '<div>'.__( 'Nothing found.', 'site-reviews' ).'</div>',
81
			'items' => $results,
82
		]);
83
	}
84
85
	/**
86
	 * @return void
87
	 */
88
	public function routerSearchTranslations( array $request )
89
	{
90
		if( empty( $request['exclude'] )) {
91
			$request['exclude'] = [];
92
		}
93
		$results = glsr( Translator::class )
94
			->search( $request['search'] )
95
			->exclude()
96
			->exclude( $request['exclude'] )
97
			->renderResults();
98
		wp_send_json_success([
99
			'empty' => '<div>'.__( 'Nothing found.', 'site-reviews' ).'</div>',
100
			'items' => $results,
101
		]);
102
	}
103
104
	/**
105
	 * @return void
106
	 */
107 1
	public function routerSubmitReview( array $request )
108
	{
109 1
		glsr( PublicController::class )->routerSubmitReview( $request );
110 1
		wp_send_json([
111 1
			'errors' => glsr( Session::class )->get( $request['form_id'].'errors', false, true ),
112 1
			'message' => wpautop( glsr( Session::class )->get( $request['form_id'].'message', '', true )),
113 1
			'recaptcha' => glsr( Session::class )->get( $request['form_id'].'recaptcha', false, true ),
114
		]);
115
	}
116
117
	/**
118
	 * @return void
119
	 */
120
	public function routerTogglePinned( array $request )
121
	{
122
		$isPinned = $this->execute( new TogglePinned( $request ));
123
		wp_send_json([
124
			'notices' => glsr( Notice::class )->get(),
125
			'pinned' => $isPinned,
126
		]);
127
	}
128
}
129