forked from LiveCarta/LiveCartaWP
Changed source root directory
This commit is contained in:
@@ -0,0 +1,333 @@
|
||||
<?php
|
||||
|
||||
class Post_SMTP_Mobile_Rest_API {
|
||||
|
||||
private $filter = '';
|
||||
private $has_mainwp = false;
|
||||
|
||||
|
||||
/**
|
||||
* Register routes
|
||||
*
|
||||
* @since 2.7.0
|
||||
* @version 1.0.0
|
||||
*/
|
||||
public function __construct() {
|
||||
|
||||
add_action( 'rest_api_init', array( $this, 'register_routes' ) );
|
||||
|
||||
$this->has_mainwp = is_plugin_active( 'mainwp/mainwp.php' );
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Register routes
|
||||
*
|
||||
* @since 2.7.0
|
||||
* @version 1.0.0
|
||||
*/
|
||||
public function register_routes() {
|
||||
|
||||
register_rest_route( 'post-smtp/v1', '/connect-app', array(
|
||||
'methods' => WP_REST_Server::CREATABLE,
|
||||
'callback' => array( $this, 'connect_app' ),
|
||||
'permission_callback' => '__return_true',
|
||||
) );
|
||||
|
||||
register_rest_route( 'post-smtp/v1', '/get-logs', array(
|
||||
'methods' => WP_REST_Server::READABLE,
|
||||
'callback' => array( $this, 'get_logs' ),
|
||||
'permission_callback' => '__return_true',
|
||||
) );
|
||||
|
||||
register_rest_route( 'post-smtp/v1', '/disconnect-site', array(
|
||||
'methods' => WP_REST_Server::EDITABLE,
|
||||
'callback' => array( $this, 'disconnect_site' ),
|
||||
'permission_callback' => '__return_true',
|
||||
) );
|
||||
|
||||
register_rest_route( 'post-smtp/v1', '/get-log', array(
|
||||
'methods' => WP_REST_Server::READABLE,
|
||||
'callback' => array( $this, 'get_log' ),
|
||||
'permission_callback' => '__return_true',
|
||||
) );
|
||||
|
||||
register_rest_route( 'post-smtp/v1', '/resend-email', array(
|
||||
'methods' => WP_REST_Server::CREATABLE,
|
||||
'callback' => array( $this, 'resend_email' ),
|
||||
'permission_callback' => '__return_true',
|
||||
) );
|
||||
|
||||
}
|
||||
|
||||
public function connect_app( WP_REST_Request $request ) {
|
||||
|
||||
$nonce = get_transient( 'post_smtp_auth_nonce' );
|
||||
$auth_key = $request->get_header( 'auth_key' );
|
||||
$fcm_token = $request->get_header( 'fcm_token' );
|
||||
$device = $request->get_header( 'device' );
|
||||
$server_url = $request->get_header( 'server_url' );
|
||||
|
||||
if( $auth_key === $nonce ) {
|
||||
|
||||
$data = array(
|
||||
$fcm_token => array(
|
||||
'auth_key' => $auth_key,
|
||||
'fcm_token' => $fcm_token,
|
||||
'device' => $device,
|
||||
'enable_notification' => 1
|
||||
)
|
||||
);
|
||||
|
||||
update_option( 'post_smtp_mobile_app_connection', $data );
|
||||
update_option( 'post_smtp_server_url', $server_url );
|
||||
|
||||
$response = array(
|
||||
'fcm_token' => $fcm_token,
|
||||
'plugin_version' => POST_SMTP_VER
|
||||
);
|
||||
|
||||
if( $this->has_mainwp ) {
|
||||
|
||||
$response['mainwp'] = post_smtp_mobile_get_child_sites();
|
||||
|
||||
}
|
||||
|
||||
wp_send_json_success(
|
||||
$response,
|
||||
200
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
wp_send_json_error(
|
||||
array(
|
||||
'error' => 'Regenerate QR Code, and scan again.'
|
||||
),
|
||||
200
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
public function get_logs( WP_REST_Request $request ) {
|
||||
|
||||
$args['order_by'] = 'time';
|
||||
$args['order'] = 'DESC';
|
||||
|
||||
$fcm_token = $request->get_header( 'fcm_token' ) !== null ? $request->get_header( 'fcm_token' ) : '';
|
||||
$app_build_number = $request->get_header( 'app_build_number' ) !== null ? $request->get_header( 'app_build_number' ) : '';
|
||||
$start = $request->get_param( 'start' ) !== null ? $request->get_param( 'start' ) : 0;
|
||||
$end = $request->get_param( 'end' ) !== null ? $request->get_param( 'end' ) : 25;
|
||||
$this->filter = $request->get_param( 'filter' ) !== 'all' ? $request->get_param( 'filter' ) : '';
|
||||
$query = $request->get_param( 'query' ) !== '' ? $request->get_param( 'query' ) : '';
|
||||
|
||||
if( empty( $query ) && !empty( $this->filter ) ) {
|
||||
|
||||
add_filter( 'post_smtp_get_logs_query_after_table', array( $this, 'filter_query' ) );
|
||||
|
||||
}
|
||||
|
||||
if( !empty( $query ) ) {
|
||||
|
||||
$args['search'] = $query;
|
||||
|
||||
}
|
||||
|
||||
if( !class_exists( 'PostmanEmailQueryLog' ) ) {
|
||||
|
||||
require POST_SMTP_PATH . '/Postman/Postman-Email-Log/PostmanEmailQueryLog.php';
|
||||
|
||||
}
|
||||
|
||||
if( post_smtp_mobile_validate( $fcm_token ) ) {
|
||||
|
||||
$logs_query = new PostmanEmailQueryLog();
|
||||
$args['start'] = $start;
|
||||
$args['end'] = $end;
|
||||
|
||||
if( empty( $args ) ) {
|
||||
|
||||
wp_send_json_success(
|
||||
array( 'message' => 'Logs not found.' ),
|
||||
200
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
if( !empty( $app_build_number ) && $app_build_number >= 14 ) {
|
||||
|
||||
$response = array(
|
||||
'logs' => $logs_query->get_logs( $args ),
|
||||
'plugin_version' => POST_SMTP_VER
|
||||
);
|
||||
|
||||
}
|
||||
else {
|
||||
$response = $logs_query->get_logs( $args );
|
||||
}
|
||||
|
||||
wp_send_json_success(
|
||||
$response,
|
||||
200
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function get_log( WP_REST_Request $request ) {
|
||||
|
||||
$fcm_token = $request->get_header( 'fcm_token' ) !== null ? $request->get_header( 'fcm_token' ) : '';
|
||||
$id = $request->get_param( 'id' ) !== null ? $request->get_param( 'id' ) : 1;
|
||||
$type = $request->get_param( 'type' ) !== null ? $request->get_param( 'type' ) : 'log';
|
||||
|
||||
if( post_smtp_mobile_validate( $fcm_token ) ) {
|
||||
|
||||
$url = admin_url( "admin.php?access_token={$fcm_token}&type={$type}&log_id={$id}" );
|
||||
|
||||
wp_send_json_success(
|
||||
$url,
|
||||
200
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function resend_email( WP_REST_Request $request ) {
|
||||
|
||||
$fcm_token = $request->get_header( 'fcm_token' ) !== null ? $request->get_header( 'fcm_token' ) : '';
|
||||
$id = $request->get_param( 'id' ) !== null ? $request->get_param( 'id' ) : '';
|
||||
|
||||
if( post_smtp_mobile_validate( $fcm_token ) ) {
|
||||
|
||||
if( empty( $id ) ){
|
||||
|
||||
wp_send_json_error(
|
||||
array(
|
||||
'error' => 'Enter email id.'
|
||||
),
|
||||
401
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
if( !class_exists( 'PostmanEmailQueryLog' ) ) {
|
||||
|
||||
require POST_SMTP_PATH . '/Postman/Postman-Email-Log/PostmanEmailQueryLog.php';
|
||||
|
||||
}
|
||||
|
||||
$response = '';
|
||||
$email_query_log = new PostmanEmailQueryLog();
|
||||
$log = $email_query_log->get_log( $id );
|
||||
$to = '';
|
||||
|
||||
if( $log ) {
|
||||
|
||||
$to = $log['original_to'];
|
||||
|
||||
/**
|
||||
* Fires before resending email
|
||||
*
|
||||
* @param array attachments
|
||||
* @since 2.5.9
|
||||
* @version 1.0.0
|
||||
*/
|
||||
$attachments = apply_filters( 'post_smtp_resend_attachments', array(), $id );
|
||||
|
||||
$success = wp_mail( $to, $log['original_subject'], $log['original_message'], $log['original_headers'], $attachments );
|
||||
|
||||
// Postman API: retrieve the result of sending this message from Postman
|
||||
$result = apply_filters( 'postman_wp_mail_result', null );
|
||||
$transcript = $result ['transcript'];
|
||||
|
||||
// post-handling
|
||||
if ( $success ) {
|
||||
|
||||
wp_send_json_success(
|
||||
array(
|
||||
'message' => 'Email successfully resend.'
|
||||
),
|
||||
200
|
||||
);
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
wp_send_json_error(
|
||||
array(
|
||||
'message' => 'Email not send.'
|
||||
),
|
||||
200
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
wp_send_json_error(
|
||||
array(
|
||||
'error' => 'Invalid email id.'
|
||||
),
|
||||
401
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function disconnect_site( WP_REST_Request $request ) {
|
||||
|
||||
$fcm_token = $request->get_header( 'fcm_token' ) !== null ? $request->get_header( 'fcm_token' ) : '';
|
||||
|
||||
if( !class_exists( 'PostmanEmailQueryLog' ) ) {
|
||||
|
||||
require POST_SMTP_PATH . '/Postman/Postman-Email-Log/PostmanEmailQueryLog.php';
|
||||
|
||||
}
|
||||
|
||||
if( post_smtp_mobile_validate( $fcm_token ) ) {
|
||||
|
||||
$response = delete_option( 'post_smtp_mobile_app_connection' );
|
||||
$response = delete_option( 'post_smtp_server_url' );
|
||||
|
||||
if( $response ) {
|
||||
|
||||
wp_send_json_success(
|
||||
array(
|
||||
'message' => 'Site Disconnected.'
|
||||
),
|
||||
200
|
||||
);
|
||||
}
|
||||
|
||||
wp_send_json_error(
|
||||
array(
|
||||
'error' => 'Invalid Request.'
|
||||
),
|
||||
403
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function filter_query( $query ) {
|
||||
|
||||
if ( $this->filter == 'success' ) {
|
||||
$query .= " WHERE (`success` = 1 OR `success` = 'Sent ( ** Fallback ** )' OR `success` LIKE '( ** Fallback ** )%') ";
|
||||
} else {
|
||||
$query .= " WHERE (`success` != 1 AND `success` != 'Sent ( ** Fallback ** )' AND `success` NOT LIKE '( ** Fallback ** )%') ";
|
||||
}
|
||||
|
||||
return $query;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
new Post_SMTP_Mobile_Rest_API();
|
||||
@@ -0,0 +1,179 @@
|
||||
<?php
|
||||
|
||||
class Post_SMTP_Mobile_Rest_API_V2 {
|
||||
|
||||
private $filter = '';
|
||||
private $has_mainwp = false;
|
||||
|
||||
|
||||
/**
|
||||
* Register routes
|
||||
*
|
||||
* @since 2.7.0
|
||||
* @version 1.0.0
|
||||
*/
|
||||
public function __construct() {
|
||||
|
||||
add_action( 'rest_api_init', array( $this, 'register_routes' ) );
|
||||
|
||||
$this->has_mainwp = is_plugin_active( 'mainwp/mainwp.php' );
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Register routes
|
||||
*
|
||||
* @since 2.7.0
|
||||
* @version 1.0.0
|
||||
*/
|
||||
public function register_routes() {
|
||||
|
||||
register_rest_route( 'post-smtp/v2', '/get-logs', array(
|
||||
'methods' => WP_REST_Server::READABLE,
|
||||
'callback' => array( $this, 'get_logs' ),
|
||||
'permission_callback' => '__return_true',
|
||||
) );
|
||||
|
||||
register_rest_route( 'post-smtp/v2', '/validate-license', array(
|
||||
'methods' => WP_REST_Server::READABLE,
|
||||
'callback' => array( $this, 'validate_license' ),
|
||||
'permission_callback' => '__return_true',
|
||||
) );
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Logs | Route: /get-logs
|
||||
*
|
||||
* @since 2.7.0
|
||||
* @version 1.0.0
|
||||
*/
|
||||
public function get_logs( WP_REST_Request $request ) {
|
||||
|
||||
$args['order_by'] = 'time';
|
||||
$args['order'] = 'DESC';
|
||||
|
||||
$fcm_token = $request->get_header( 'fcm_token' ) !== null ? $request->get_header( 'fcm_token' ) : '';
|
||||
$start = $request->get_param( 'start' ) !== null ? $request->get_param( 'start' ) : 0;
|
||||
$end = $request->get_param( 'end' ) !== null ? $request->get_param( 'end' ) : 25;
|
||||
$this->filter = $request->get_param( 'filter' ) !== 'all' ? $request->get_param( 'filter' ) : '';
|
||||
$query = $request->get_param( 'query' ) !== '' ? $request->get_param( 'query' ) : '';
|
||||
$mainwp_site_id = $request->get_param( 'mainwp_site_id' ) !== '' ? $request->get_param( 'mainwp_site_id' ) : '';
|
||||
|
||||
if( $this->has_mainwp ) {
|
||||
|
||||
$args['site_id'] = empty( $mainwp_site_id ) ? 'main_site' : $mainwp_site_id;
|
||||
|
||||
}
|
||||
|
||||
if( empty( $query ) && !empty( $this->filter ) && $this->filter !== 'all' ) {
|
||||
|
||||
$args['status'] = $this->filter;
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
$args['status'] = '';
|
||||
|
||||
}
|
||||
|
||||
if( !empty( $query ) ) {
|
||||
|
||||
$args['search'] = $query;
|
||||
|
||||
}
|
||||
|
||||
if( !class_exists( 'PostmanEmailQueryLog' ) ) {
|
||||
|
||||
require POST_SMTP_PATH . '/Postman/Postman-Email-Log/PostmanEmailQueryLog.php';
|
||||
|
||||
}
|
||||
|
||||
if( post_smtp_mobile_validate( $fcm_token ) ) {
|
||||
|
||||
$logs_query = new PostmanEmailQueryLog();
|
||||
$args['start'] = $start;
|
||||
$args['end'] = $end;
|
||||
|
||||
if( empty( $args ) ) {
|
||||
|
||||
wp_send_json_success(
|
||||
array( 'message' => 'Logs not found.' ),
|
||||
200
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
$response = array(
|
||||
'logs' => $logs_query->get_logs( $args ),
|
||||
'plugin_version' => POST_SMTP_VER
|
||||
);
|
||||
|
||||
if( $this->has_mainwp ) {
|
||||
|
||||
$response['mainwp'] = post_smtp_mobile_get_child_sites();
|
||||
|
||||
}
|
||||
|
||||
wp_send_json_success(
|
||||
$response,
|
||||
200
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Validat License | Route: /validate-license
|
||||
*
|
||||
* @since 2.9.4
|
||||
* @version 1.0.0
|
||||
*/
|
||||
public function validate_license( WP_REST_Request $request ) {
|
||||
|
||||
$fcm_token = $request->get_header( 'fcm_token' ) !== null ? $request->get_header( 'fcm_token' ) : '';
|
||||
|
||||
/**
|
||||
* Validate License
|
||||
*
|
||||
* @param bool $validate_license
|
||||
*
|
||||
* @since 2.9.4
|
||||
*/
|
||||
$validate_license = apply_filters( 'post_smtp_mobile_validate_license', false );
|
||||
|
||||
if( post_smtp_mobile_validate( $fcm_token ) && $validate_license ) {
|
||||
|
||||
$response = array();
|
||||
|
||||
/**
|
||||
* License Response
|
||||
*
|
||||
* @param array $response
|
||||
*
|
||||
* @since 2.9.4
|
||||
*/
|
||||
$response = apply_filters( 'post_smtp_mobile_license_response', $response );
|
||||
|
||||
if( !empty( $response ) ) {
|
||||
|
||||
wp_send_json_success(
|
||||
$response,
|
||||
200
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
wp_send_json_error(
|
||||
array( 'message' => 'License not found.' ),
|
||||
404
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
new Post_SMTP_Mobile_Rest_API_V2();
|
||||
Reference in New Issue
Block a user