summaryrefslogtreecommitdiff
path: root/Postman/notifications
diff options
context:
space:
mode:
Diffstat (limited to 'Postman/notifications')
-rw-r--r--Postman/notifications/INotify.php7
-rw-r--r--Postman/notifications/PostmanMailNotify.php14
-rw-r--r--Postman/notifications/PostmanNotify.php42
-rw-r--r--Postman/notifications/PostmanPushoverNotify.php34
-rw-r--r--Postman/notifications/PostmanSlackNotify.php39
5 files changed, 136 insertions, 0 deletions
diff --git a/Postman/notifications/INotify.php b/Postman/notifications/INotify.php
new file mode 100644
index 0000000..f40548d
--- /dev/null
+++ b/Postman/notifications/INotify.php
@@ -0,0 +1,7 @@
+<?php
+if ( ! defined( 'ABSPATH' ) ) {
+ exit; // Exit if accessed directly
+}
+interface Postman_Notify {
+ public function send_message( $message );
+} \ No newline at end of file
diff --git a/Postman/notifications/PostmanMailNotify.php b/Postman/notifications/PostmanMailNotify.php
new file mode 100644
index 0000000..922c304
--- /dev/null
+++ b/Postman/notifications/PostmanMailNotify.php
@@ -0,0 +1,14 @@
+<?php
+if ( ! defined( 'ABSPATH' ) ) {
+ exit; // Exit if accessed directly
+}
+class PostmanMailNotify implements Postman_Notify {
+
+ public function send_message($message)
+ {
+ $to_email = apply_filters( 'post_smtp_notify_email',get_bloginfo( 'admin_email' ) );
+ $domain = get_bloginfo( 'url' );
+
+ mail( $to_email, "{$domain}: " . __( 'Post SMTP email error', 'post-smtp' ), $message , '', "-f{$to_email}" );
+ }
+} \ No newline at end of file
diff --git a/Postman/notifications/PostmanNotify.php b/Postman/notifications/PostmanNotify.php
new file mode 100644
index 0000000..7654ecb
--- /dev/null
+++ b/Postman/notifications/PostmanNotify.php
@@ -0,0 +1,42 @@
+<?php
+if ( ! defined( 'ABSPATH' ) ) {
+ exit; // Exit if accessed directly
+}
+require_once 'INotify.php';
+require_once 'PostmanMailNotify.php';
+require_once 'PostmanPushoverNotify.php';
+require_once 'PostmanSlackNotify.php';
+
+class PostmanNotify {
+ private $notify;
+
+ public function __construct( Postman_Notify $notify ) {
+ $this->notify = $notify;
+ }
+
+ public function send( $message, $log ) {
+ $this->notify->send_message( $message );
+ }
+
+ public function push_to_chrome($message) {
+ $push_chrome = PostmanOptions::getInstance()->useChromeExtension();
+
+ if ( $push_chrome ) {
+ $uid = PostmanOptions::getInstance()->getNotificationChromeUid();
+
+ if ( empty( $uid ) ) {
+ return;
+ }
+
+ $url = 'https://postmansmtp.com/chrome/' . $uid;
+
+ $args = array(
+ 'body' => array(
+ 'message' => $message
+ )
+ );
+
+ $response = wp_remote_post( $url , $args );
+ }
+ }
+} \ No newline at end of file
diff --git a/Postman/notifications/PostmanPushoverNotify.php b/Postman/notifications/PostmanPushoverNotify.php
new file mode 100644
index 0000000..14ef7d2
--- /dev/null
+++ b/Postman/notifications/PostmanPushoverNotify.php
@@ -0,0 +1,34 @@
+<?php
+if ( ! defined( 'ABSPATH' ) ) {
+ exit; // Exit if accessed directly
+}
+class PostmanPushoverNotify implements Postman_Notify {
+
+ public function send_message($message)
+ {
+ $options = PostmanOptions::getInstance();
+
+ $api_url = "https://api.pushover.net/1/messages.json";
+ $app_token = $options->getPushoverToken();
+ $user_key = $options->getPushoverUser();
+
+ $args = array(
+ 'body' => array(
+ "token" => $app_token,
+ "user" => $user_key,
+ "message" => $message,
+ )
+ );
+
+ $result = wp_remote_post( $api_url, $args );
+
+ if ( is_wp_error($result) ) {
+ error_log( __CLASS__ . ': ' . $result->get_error_message() );
+ }
+
+ $body = json_decode( wp_remote_retrieve_body( $result ), true );
+ if ( $body['status'] == 0 ) {
+ error_log( __CLASS__ . ': ' . print_r( $body, true ) );
+ }
+ }
+} \ No newline at end of file
diff --git a/Postman/notifications/PostmanSlackNotify.php b/Postman/notifications/PostmanSlackNotify.php
new file mode 100644
index 0000000..5b6fae3
--- /dev/null
+++ b/Postman/notifications/PostmanSlackNotify.php
@@ -0,0 +1,39 @@
+<?php
+if ( ! defined( 'ABSPATH' ) ) {
+ exit; // Exit if accessed directly
+}
+class PostmanSlackNotify implements Postman_Notify {
+
+ public function send_message($message)
+ {
+ $options = PostmanOptions::getInstance();
+
+ $api_url = $options->getSlackToken();
+
+ $headers = array(
+ 'content-type' => 'application/json'
+ );
+
+ $body = array(
+ 'text' => $message
+ );
+
+ $args = array(
+ 'headers' => $headers,
+ 'body' => json_encode($body)
+ );
+
+ $result = wp_remote_post( $api_url, $args );
+
+ if ( is_wp_error($result) ) {
+ error_log( __CLASS__ . ': ' . $result->get_error_message() );
+ }
+
+ $code = wp_remote_retrieve_response_code( $result );
+ $message = wp_remote_retrieve_response_message( $result );
+
+ if ( $code != 200 && $message !== 'OK' ) {
+ error_log( __CLASS__ . ': ' . $message );
+ }
+ }
+} \ No newline at end of file