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;
 | 
						|
    }
 | 
						|
 | 
						|
}
 | 
						|
 |