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.
		
		
		
		
		
			
		
			
				
					
					
						
							96 lines
						
					
					
						
							2.4 KiB
						
					
					
				
			
		
		
	
	
							96 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 = (int) $user1;
 | 
						|
        $user2 = (int) $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('Video chat between %s and %s'),
 | 
						|
            [$fromUserInfo['firstname'], $toUserInfo['firstname']]
 | 
						|
        );
 | 
						|
 | 
						|
        return Database::insert(
 | 
						|
            Database::get_main_table(TABLE_MAIN_CHAT_VIDEO),
 | 
						|
            [
 | 
						|
                'from_user' => $fromUser,
 | 
						|
                'to_user' => $toUser,
 | 
						|
                'title' => $chatName,
 | 
						|
                'datetime' => api_get_utc_datetime(),
 | 
						|
            ]
 | 
						|
        );
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Check if the video chat exists by its room name.
 | 
						|
     *
 | 
						|
     * @param string $name The video chat name
 | 
						|
     *
 | 
						|
     * @return bool
 | 
						|
     */
 | 
						|
    public static function nameExists($name)
 | 
						|
    {
 | 
						|
        $resultData = Database::select(
 | 
						|
            'COUNT(1) AS count',
 | 
						|
            Database::get_main_table(TABLE_MAIN_CHAT_VIDEO),
 | 
						|
            [
 | 
						|
                'where' => ['title = ?' => $name],
 | 
						|
            ],
 | 
						|
            'first'
 | 
						|
        );
 | 
						|
 | 
						|
        if (false !== $resultData) {
 | 
						|
            return $resultData['count'] > 0;
 | 
						|
        }
 | 
						|
 | 
						|
        return false;
 | 
						|
    }
 | 
						|
}
 | 
						|
 |