1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
<?php
namespace FluentMail\App\Http\Controllers;
use FluentMail\App\Models\Settings; use FluentMail\App\Services\NotificationHelper; use FluentMail\Includes\Request\Request; use FluentMail\Includes\Support\Arr;
class SlackController extends Controller { public function registerSite(Request $request) { $this->verify();
$formData = $request->get('settings', []);
$userEmail = sanitize_email(Arr::get($formData, 'user_email'));
if (!is_email($userEmail)) { return $this->sendError([ 'message' => __('Please provide a valid email address', 'fluent-smtp') ], 422); }
$nonce = wp_create_nonce('fluent_smtp_slack_register_site');
$payload = [ 'admin_email' => $userEmail, 'smtp_url' => admin_url('options-general.php?_slacK_nonce='.$nonce.'&page=fluent-mail#/'), 'site_url' => site_url(), 'site_title' => get_bloginfo('name'), 'site_lang' => get_bloginfo('language'), ];
$activationData = NotificationHelper::registerSlackSite($payload);
if (is_wp_error($activationData)) { return $this->sendError([ 'message' => $activationData->get_error_message(), 'errors' => $activationData->get_error_data(), ], 422); }
$prevSettings = (new Settings())->notificationSettings();
$prevSettings['slack'] = [ 'status' => 'pending', 'token' => Arr::get($activationData, 'site_token'), 'redirect_url' => '' ];
update_option('_fluent_smtp_notify_settings', $prevSettings);
return $this->sendSuccess([ 'message' => __('Awesome! You are redirecting to slack', 'fluent-smtp'), 'redirect_url' => Arr::get($activationData, 'redirect_url') ]); }
public function sendTestMessage(Request $request) { // Let's update the notification status $settings = (new Settings())->notificationSettings();
if (Arr::get($settings, 'slack.status') != 'yes') { return $this->sendError([ 'message' => __('Slack notification is not enabled', 'fluent-smtp') ], 422); }
$message = 'This is a test message for ' . site_url() . '. If you get this message, then your site is connected successfully.';
$result = NotificationHelper::sendSlackMessage($message, Arr::get($settings, 'slack.webhook_url'));
if (is_wp_error($result)) { return $this->sendError([ 'message' => $result->get_error_message(), 'errors' => $result->get_error_data(), ], 422); }
return $this->sendSuccess([ 'message' => __('Test message sent successfully', 'fluent-smtp') ]); }
public function disconnect() { $settings = (new Settings())->notificationSettings();
$settings['slack'] = [ 'status' => 'no', 'webhook_url' => '', 'token' => '' ];
update_option('_fluent_smtp_notify_settings', $settings);
return $this->sendSuccess([ 'message' => __('Slack connection has been disconnected successfully', 'fluent-smtp') ]); }
}
|