mirror of
				https://github.com/pierre42100/ComunicAPI
				synced 2025-11-04 12:14:12 +00:00 
			
		
		
		
	Can get pending calls of a user
This commit is contained in:
		@@ -68,6 +68,22 @@ class CallsController {
 | 
			
		||||
			
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Get the next pending call
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @url POST /calls/nextPending
 | 
			
		||||
	 */
 | 
			
		||||
	public function GetNextPendingCall(){
 | 
			
		||||
		user_login_required();
 | 
			
		||||
 | 
			
		||||
		//Get the next pending call for the user
 | 
			
		||||
		$call = components()->calls->getNextPendingForUser(userID, TRUE);
 | 
			
		||||
 | 
			
		||||
		if(!$call->isValid())
 | 
			
		||||
			return array("notice" => "No pending call.");
 | 
			
		||||
 | 
			
		||||
		return self::CallInformationToAPI($call);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Turn a CallsConfig object into an API entry
 | 
			
		||||
 
 | 
			
		||||
@@ -69,6 +69,63 @@ class CallsComponents {
 | 
			
		||||
		return $info;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Get information about a call
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param $call_id Target call ID
 | 
			
		||||
	 * @param $load_members Specify whether members information should
 | 
			
		||||
	 * be loaded too or not
 | 
			
		||||
	 * @return CallInformation Matching call information object / invalid object
 | 
			
		||||
	 * in case of failure
 | 
			
		||||
	 */
 | 
			
		||||
	public function get(int $call_id, bool $load_members) : CallInformation {
 | 
			
		||||
		
 | 
			
		||||
		$entry = db()->select(
 | 
			
		||||
			self::CALLS_LIST_TABLE, 
 | 
			
		||||
			"WHERE id = ?",
 | 
			
		||||
			array($call_id)
 | 
			
		||||
		);
 | 
			
		||||
 | 
			
		||||
		if(count($entry) == 0)
 | 
			
		||||
			return new CallInformation();
 | 
			
		||||
		
 | 
			
		||||
		$info = self::DBToCallInformation($entry[0]);
 | 
			
		||||
 | 
			
		||||
		//Load call members if required
 | 
			
		||||
		if($load_members && !$this->getMembers($info))
 | 
			
		||||
			return new CallInformation();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		return $info;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Get the next call for a user
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param $userID Target user ID
 | 
			
		||||
	 * @param $load_members Specify whether information about members 
 | 
			
		||||
	 * should be loaded or not
 | 
			
		||||
	 * @return CallInformation Information about the call / invalid object
 | 
			
		||||
	 * if none found
 | 
			
		||||
	 */
 | 
			
		||||
	public function getNextPendingForUser(int $userID, bool $load_members) : CallInformation {
 | 
			
		||||
 | 
			
		||||
		//Get the ID of a call the user has not responded yet
 | 
			
		||||
		$entries = db()->select(
 | 
			
		||||
			self::CALLS_MEMBERS_TABLE,
 | 
			
		||||
			"WHERE user_id = ? AND user_accepted = ?",
 | 
			
		||||
			array($userID, CallMemberInformation::USER_UNKNOWN),
 | 
			
		||||
			array("call_id")
 | 
			
		||||
		);
 | 
			
		||||
 | 
			
		||||
		//Check if the user has no pending call
 | 
			
		||||
		if(count($entries) == 0)
 | 
			
		||||
			return new CallInformation();
 | 
			
		||||
		
 | 
			
		||||
		return $this->get($entries[0]["call_id"], $load_members);
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Create a call for a conversation
 | 
			
		||||
	 * 
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user