You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
2.4 KiB
93 lines
2.4 KiB
<?php
|
|
/* For licensing terms, see /license.txt */
|
|
|
|
/**
|
|
* VideoChat class
|
|
*
|
|
* This class provides methods for video chat management.
|
|
*
|
|
* @author Angel Fernando Quiroz Campos <angel.quiroz@beeznest.com>
|
|
*/
|
|
class VideoChat
|
|
{
|
|
|
|
/**
|
|
* Get the video chat info by its users
|
|
* @param int $user1 User id
|
|
* @param int $user2 Other user id
|
|
* @return array The video chat info. Otherwise return false
|
|
*/
|
|
public static function getChatRoomByUsers($user1, $user2)
|
|
{
|
|
$user1 = intval($user1);
|
|
$user2 = intval($user2);
|
|
|
|
if (empty($user1) || empty($user2)) {
|
|
return false;
|
|
}
|
|
|
|
return Database::select(
|
|
'*',
|
|
Database::get_main_table(TABLE_MAIN_CHAT_VIDEO),
|
|
[
|
|
'where' => [
|
|
'(from_user = ? AND to_user = ?)' => [$user1, $user2],
|
|
'OR (from_user = ? AND to_user = ?)' => [$user2, $user1]
|
|
]
|
|
],
|
|
'first'
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Create a video chat
|
|
* @param int $fromUser The sender user
|
|
* @param int $toUser The receiver user
|
|
* @return int The created video chat id. Otherwise return false
|
|
*/
|
|
public static function createRoom($fromUser, $toUser)
|
|
{
|
|
$fromUserInfo = api_get_user_info($fromUser);
|
|
$toUserInfo = api_get_user_info($toUser);
|
|
|
|
$chatName = vsprintf(
|
|
get_lang('VideoChatBetweenUserXAndUserY'),
|
|
[$fromUserInfo['firstname'], $toUserInfo['firstname']]
|
|
);
|
|
|
|
return Database::insert(
|
|
Database::get_main_table(TABLE_MAIN_CHAT_VIDEO),
|
|
[
|
|
'from_user' => intval($fromUser),
|
|
'to_user' => intval($toUser),
|
|
'room_name' => $chatName,
|
|
'datetime' => api_get_utc_datetime()
|
|
]
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Check if the video chat exists by its room name
|
|
* @param string $name The video chat name
|
|
*
|
|
* @return boolean
|
|
*/
|
|
public static function nameExists($name)
|
|
{
|
|
$resultData = Database::select(
|
|
'COUNT(1) AS count',
|
|
Database::get_main_table(TABLE_MAIN_CHAT_VIDEO),
|
|
[
|
|
'where' => ['room_name = ?' => $name]
|
|
],
|
|
'first'
|
|
);
|
|
|
|
if ($resultData !== false) {
|
|
return $resultData['count'] > 0;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
}
|
|
|