diff options
Diffstat (limited to 'Postman/notifications')
-rw-r--r-- | Postman/notifications/INotify.php | 7 | ||||
-rw-r--r-- | Postman/notifications/PostmanMailNotify.php | 14 | ||||
-rw-r--r-- | Postman/notifications/PostmanNotify.php | 42 | ||||
-rw-r--r-- | Postman/notifications/PostmanPushoverNotify.php | 34 | ||||
-rw-r--r-- | Postman/notifications/PostmanSlackNotify.php | 39 |
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 |