mirror of
https://github.com/pierre42100/ComunicAPI
synced 2024-11-30 09:16:35 +00:00
Conversations can be created
This commit is contained in:
parent
6498132ef2
commit
bba8de04a0
@ -22,14 +22,28 @@ class conversationsController{
|
|||||||
//Extract parametres
|
//Extract parametres
|
||||||
$conversationName = ($_POST["name"] == "false" ? false : $_POST['name']);
|
$conversationName = ($_POST["name"] == "false" ? false : $_POST['name']);
|
||||||
$followConversation = ($_POST['follow'] == "true" ? true : false);
|
$followConversation = ($_POST['follow'] == "true" ? true : false);
|
||||||
$users = users_list_to_array($_POST['users']);
|
$usersList = users_list_to_array($_POST['users']);
|
||||||
|
|
||||||
|
//Add current user (if not present)
|
||||||
|
if(!isset($usersList[userID]))
|
||||||
|
$usersList[userID] = userID;
|
||||||
|
|
||||||
//Check users
|
//Check users
|
||||||
if(count($users) < 1)
|
if(count($usersList) < 1)
|
||||||
Rest_fatal_erro(501, "Please select at least one user !");
|
Rest_fatal_error(501, "Please select at least one user !");
|
||||||
|
|
||||||
//Perform the request
|
//Try to create the conversation
|
||||||
|
$conversationID = CS::get()->components->conversations->create(userID, $followConversation, $usersList, $conversationName);
|
||||||
|
|
||||||
|
//Check for errors
|
||||||
|
if($conversationID == 0)
|
||||||
|
Rest_fatal_error(500, "Couldn't create the conversation !");
|
||||||
|
|
||||||
|
//Success
|
||||||
|
return array(
|
||||||
|
"conversationID" => $conversationID,
|
||||||
|
"success" => "The conversation was successfully created !"
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -7,6 +7,25 @@
|
|||||||
|
|
||||||
class conversations {
|
class conversations {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var String $conversationListTable Name of the conversation list table
|
||||||
|
*/
|
||||||
|
private $conversationListTable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var String $conversationUsersTable Name of the conversation users table
|
||||||
|
*/
|
||||||
|
private $conversationUsersTable;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Public constructor
|
||||||
|
*/
|
||||||
|
public function __construct(){
|
||||||
|
$this->conversationListTable = CS::get()->config->get("dbprefix")."conversations_list";
|
||||||
|
$this->conversationUsersTable = CS::get()->config->get("dbprefix")."conversations_users";
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new conversation
|
* Create a new conversation
|
||||||
*
|
*
|
||||||
@ -14,7 +33,50 @@ class conversations {
|
|||||||
* @param Boolean $follow Defines if the user creating the conversation will follow it
|
* @param Boolean $follow Defines if the user creating the conversation will follow it
|
||||||
* @param Array $usersList The list of users following the conversation
|
* @param Array $usersList The list of users following the conversation
|
||||||
* @param Mixed $name Optionnal, the name of the conversation
|
* @param Mixed $name Optionnal, the name of the conversation
|
||||||
|
* @return Integer 0 for a fail else the ID of the newly created conversation
|
||||||
*/
|
*/
|
||||||
|
public function create($userID, $follow, array $usersList, $name){
|
||||||
|
|
||||||
|
$mainInformations = array(
|
||||||
|
"ID_utilisateurs" => $userID*1,
|
||||||
|
"name" => ($name ? $name : ""),
|
||||||
|
"last_active" => time(),
|
||||||
|
"creation_time" => time()
|
||||||
|
);
|
||||||
|
|
||||||
|
//First, insert the conversation in the main table
|
||||||
|
if(!CS::get()->db->addLine($this->conversationListTable, $mainInformations))
|
||||||
|
return 0; //An error occured
|
||||||
|
|
||||||
|
//Get the last inserted ID
|
||||||
|
$conversationID = CS::get()->db->getLastInsertedID();
|
||||||
|
|
||||||
|
//Check for errors
|
||||||
|
if($conversationID == 0)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
//Insert users registrattions
|
||||||
|
foreach($usersList as $processUser){
|
||||||
|
|
||||||
|
//Prepare informations about the user
|
||||||
|
$userInformations = array(
|
||||||
|
"ID_".$this->conversationListTable => $conversationID,
|
||||||
|
"time_add" => time(),
|
||||||
|
"saw_last_message" => 1
|
||||||
|
);
|
||||||
|
|
||||||
|
//Make user follow the conversation if required
|
||||||
|
if($userID == $processUser)
|
||||||
|
$userInformations["following"] = ($follow ? 1 : 0);
|
||||||
|
|
||||||
|
//Try to insert user in conversation
|
||||||
|
if(!CS::get()->db->addLine($this->conversationUsersTable, $userInformations))
|
||||||
|
return 0; //Error
|
||||||
|
}
|
||||||
|
|
||||||
|
//Conversation creation is a success
|
||||||
|
return $conversationID;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ function users_list_to_array($list) : array{
|
|||||||
return array();
|
return array();
|
||||||
|
|
||||||
//Add the entry to the list
|
//Add the entry to the list
|
||||||
$usersList[] = floor($process*1);
|
$usersList[floor($process*1)] = floor($process*1);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Return the result
|
//Return the result
|
||||||
|
Loading…
Reference in New Issue
Block a user