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
 | 
						 * Turn a CallsConfig object into an API entry
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -69,6 +69,63 @@ class CallsComponents {
 | 
				
			|||||||
		return $info;
 | 
							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
 | 
						 * Create a call for a conversation
 | 
				
			||||||
	 * 
 | 
						 * 
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user