mirror of
https://github.com/pierre42100/ComunicAPI
synced 2024-11-27 07:49:27 +00:00
Conversations can be created
This commit is contained in:
parent
6498132ef2
commit
bba8de04a0
@ -22,14 +22,28 @@ class conversationsController{
|
||||
//Extract parametres
|
||||
$conversationName = ($_POST["name"] == "false" ? false : $_POST['name']);
|
||||
$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
|
||||
if(count($users) < 1)
|
||||
Rest_fatal_erro(501, "Please select at least one user !");
|
||||
if(count($usersList) < 1)
|
||||
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 {
|
||||
|
||||
/**
|
||||
* @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
|
||||
*
|
||||
@ -14,7 +33,50 @@ class conversations {
|
||||
* @param Boolean $follow Defines if the user creating the conversation will follow it
|
||||
* @param Array $usersList The list of users following 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();
|
||||
|
||||
//Add the entry to the list
|
||||
$usersList[] = floor($process*1);
|
||||
$usersList[floor($process*1)] = floor($process*1);
|
||||
}
|
||||
|
||||
//Return the result
|
||||
|
Loading…
Reference in New Issue
Block a user