PluginProbe
ReviewX – Multi-Criteria Reviews for WooCommerce with Google Reviews & Schema / trunk
ReviewX – Multi-Criteria Reviews for WooCommerce with Google Reviews & Schema vtrunk
2.5.1 2.5.0 2.4.1 2.4.0 2.3.11 2.3.10 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 All 143 releases
reviewx / app / Rest / Controllers / EmailTemplateController.php

EmailTemplateController.php in ReviewX – Multi-Criteria Reviews for WooCommerce with Google Reviews & Schema trunk, at app/Rest/Controllers/EmailTemplateController.php

253 lines 9.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace ReviewX\Rest\Controllers;
4
5 \defined("ABSPATH") || exit;
6 use ReviewX\Services\EmailService;
7 use ReviewX\Utilities\Helper;
8 use ReviewX\WPDrill\Contracts\InvokableContract;
9 use ReviewX\WPDrill\Response;
10 class EmailTemplateController implements InvokableContract
11 {
12 private const REMINDER_SETTINGS_CACHE_KEY = 'rvx_reminder_settings';
13 private const EMAIL_CONTENT_CACHE_KEY = 'rvx_email_content';
14 protected $emailService;
15 /**
16 * @param EmailService $emailService
17 */
18 public function __construct(EmailService $emailService)
19 {
20 $this->emailService = $emailService;
21 }
22 /**
23 * @return void
24 */
25 public function __invoke()
26 {
27 }
28 /**
29 * @return Response
30 */
31 public function index()
32 {
33 $resp = $this->emailService->index();
34 return Helper::getApiResponse($resp);
35 }
36 /**
37 * @return Response
38 */
39 public function store($request)
40 {
41 try {
42 $response = $this->emailService->store($request->get_params());
43 return Helper::saasResponse($response);
44 } catch (\Throwable $e) {
45 return Helper::rvxApi(['error' => $e->getMessage()])->fails('This Action Fails', $e->getCode());
46 }
47 }
48 /**
49 * @return Response
50 */
51 public function show($request)
52 {
53 $id = $request->get_param('id');
54 $resp = $this->emailService->show($id);
55 return Helper::getApiResponse($resp);
56 }
57 public function update($request)
58 {
59 try {
60 $response = $this->emailService->update($request->get_params());
61 return Helper::saasResponse($response);
62 } catch (\Throwable $e) {
63 return Helper::rvxApi(['error' => $e->getMessage()])->fails('This Action Fails', $e->getCode());
64 }
65 }
66 public function trash($request)
67 {
68 $id = $request->get_param('id');
69 $resp = $this->emailService->trash($id);
70 return Helper::getApiResponse($resp);
71 }
72 public function mailRequest($request)
73 {
74 $resp = $this->emailService->mailRequest($request->get_params());
75 return Helper::getApiResponse($resp);
76 }
77 public function mailContents()
78 {
79 $cached = \get_transient(self::EMAIL_CONTENT_CACHE_KEY);
80 if (\is_array($cached)) {
81 return Helper::rest($cached)->success();
82 }
83 $resp = $this->emailService->content();
84 if ($resp->getStatusCode() >= 200 && $resp->getStatusCode() < 300) {
85 \set_transient(self::EMAIL_CONTENT_CACHE_KEY, $resp->getApiData(), HOUR_IN_SECONDS);
86 }
87 return Helper::getApiResponse($resp);
88 }
89 public function saveEmailRequest($request)
90 {
91 try {
92 $response = $this->emailService->saveEmailRequest($request->get_params());
93 if ($response->getStatusCode() >= 200 && $response->getStatusCode() < 300) {
94 \delete_transient(self::EMAIL_CONTENT_CACHE_KEY);
95 }
96 return Helper::saasResponse($response);
97 } catch (\Throwable $e) {
98 return Helper::rvxApi(['error' => $e->getMessage()])->fails('This Action Fails', $e->getCode());
99 }
100 }
101 public function followup($request)
102 {
103 try {
104 $response = $this->emailService->followup($request->get_params());
105 if ($response->getStatusCode() >= 200 && $response->getStatusCode() < 300) {
106 \delete_transient(self::EMAIL_CONTENT_CACHE_KEY);
107 }
108 return Helper::saasResponse($response);
109 } catch (\Throwable $e) {
110 return Helper::rvxApi(['error' => $e->getMessage()])->fails('This Action Fails', $e->getCode());
111 }
112 }
113 public function photoReview($request)
114 {
115 try {
116 $response = $this->emailService->photoReview($request->get_params());
117 if ($response->getStatusCode() >= 200 && $response->getStatusCode() < 300) {
118 \delete_transient(self::EMAIL_CONTENT_CACHE_KEY);
119 }
120 return Helper::saasResponse($response);
121 } catch (\Throwable $e) {
122 return Helper::rvxApi(['error' => $e->getMessage()])->fails('This Action Fails', $e->getCode());
123 }
124 }
125 public function thankYouReview($request)
126 {
127 try {
128 $response = $this->emailService->thankYouReview($request->get_params());
129 if ($response->getStatusCode() >= 200 && $response->getStatusCode() < 300) {
130 \delete_transient(self::EMAIL_CONTENT_CACHE_KEY);
131 }
132 return Helper::saasResponse($response);
133 } catch (\Throwable $e) {
134 return Helper::rvxApi(['error' => $e->getMessage()])->fails('This Action Fails', $e->getCode());
135 }
136 }
137 public function testMail($request)
138 {
139 try {
140 $response = $this->emailService->testMail($request->get_params());
141 return Helper::saasResponse($response);
142 } catch (\Throwable $e) {
143 return Helper::rvxApi(['error' => $e->getMessage()])->fails('This Action Fails', $e->getCode());
144 }
145 }
146 public function markAsDone($request)
147 {
148 try {
149 $response = $this->emailService->markAsComplete($request->get_params());
150 return Helper::saasResponse($response);
151 } catch (\Throwable $e) {
152 return Helper::rvxApi(['error' => $e->getMessage()])->fails('This Action Fails', $e->getCode());
153 }
154 }
155 public function bulkMarkAsDone($request)
156 {
157 try {
158 $response = $this->emailService->bulkMarkAsComplete($request->get_params());
159 return Helper::saasResponse($response);
160 } catch (\Throwable $e) {
161 return Helper::rvxApi(['error' => $e->getMessage()])->fails('This Action Fails', $e->getCode());
162 }
163 }
164 public function requestEmailCancel($request)
165 {
166 try {
167 $response = $this->emailService->emailCancel($request->get_params());
168 return Helper::saasResponse($response);
169 } catch (\Throwable $e) {
170 return Helper::rvxApi(['error' => $e->getMessage()])->fails('This Action Fails', $e->getCode());
171 }
172 }
173 public function requestEmailSend($request)
174 {
175 try {
176 $response = $this->emailService->requestEmailSend($request->get_params());
177 return Helper::saasResponse($response);
178 } catch (\Throwable $e) {
179 return Helper::rvxApi(['error' => $e->getMessage()])->fails('This Action Fails', $e->getCode());
180 }
181 }
182 public function requestEmailResend($request)
183 {
184 try {
185 $response = $this->emailService->requestEmailResend($request->get_params());
186 return Helper::saasResponse($response);
187 } catch (\Throwable $e) {
188 return Helper::rvxApi(['error' => $e->getMessage()])->fails('This Action Fails', $e->getCode());
189 }
190 }
191 public function requestEmailRetry($request)
192 {
193 try {
194 $response = $this->emailService->requestEmailRetry($request->get_params());
195 return Helper::saasResponse($response);
196 } catch (\Throwable $e) {
197 return Helper::rvxApi(["error" => $e->getMessage()])->fails("This Action Fails", $e->getCode());
198 }
199 }
200 public function requestEmailUnsubscribe()
201 {
202 try {
203 $response = $this->emailService->requestEmailUnsubscribe();
204 return Helper::saasResponse($response);
205 } catch (\Throwable $e) {
206 return Helper::rvxApi(['error' => $e->getMessage()])->fails('This Action Fails', $e->getCode());
207 }
208 }
209 public function reviewRequestSettings()
210 {
211 $cached = \get_transient(self::REMINDER_SETTINGS_CACHE_KEY);
212 if (\is_array($cached)) {
213 return Helper::rest($cached)->success();
214 }
215 $resp = $this->emailService->reviewRequestSettings();
216 if ($resp->getStatusCode() >= 200 && $resp->getStatusCode() < 300) {
217 \set_transient(self::REMINDER_SETTINGS_CACHE_KEY, $resp->getApiData(), HOUR_IN_SECONDS);
218 }
219 return Helper::getApiResponse($resp);
220 }
221 public function allReminderSettings($request)
222 {
223 try {
224 $response = $this->emailService->allReminderSettings($request->get_params());
225 if ($response->getStatusCode() >= 200 && $response->getStatusCode() < 300) {
226 \delete_transient(self::REMINDER_SETTINGS_CACHE_KEY);
227 }
228 return Helper::saasResponse($response);
229 } catch (\Throwable $e) {
230 return Helper::rvxApi(['error' => $e->getMessage()])->fails('This Action Fails', $e->getCode());
231 }
232 }
233 public function sendReviewEmailForOrder($request)
234 {
235 try {
236 $wpUniqueId = (string) $request->get_param('wp_unique_id');
237 $response = $this->emailService->sendReviewEmailForOrder($wpUniqueId);
238 return Helper::saasResponse($response);
239 } catch (\Throwable $e) {
240 return Helper::rvxApi(['error' => $e->getMessage()])->fails('This Action Fails', $e->getCode());
241 }
242 }
243 public function emailQuota()
244 {
245 try {
246 $response = $this->emailService->emailQuota();
247 return Helper::saasResponse($response);
248 } catch (\Throwable $e) {
249 return Helper::rvxApi(['error' => $e->getMessage()])->fails('This Action Fails', $e->getCode());
250 }
251 }
252 }
253