198 lines
3.9 KiB
PHP
198 lines
3.9 KiB
PHP
<?php
|
|
/**
|
|
* Created by PhpStorm.
|
|
* User: lucas
|
|
* Date: 07/12/17
|
|
* Time: 19:48
|
|
*/
|
|
|
|
namespace api\module;
|
|
|
|
|
|
use \database\core\Repo;
|
|
use \error\core\Error;
|
|
use \error\core\Err;
|
|
use kwebsocket\core\wsinterop;
|
|
|
|
class message
|
|
{
|
|
|
|
public function GET_emergency($argv){
|
|
extract($argv);
|
|
|
|
$messages = [];
|
|
|
|
return ["sent" => true, "messages" => $messages];
|
|
//TODO: tout poster dans la BDD
|
|
}
|
|
|
|
public function POST_emergency($argv){
|
|
extract($argv);
|
|
|
|
/* (1) Get ID_USER if connected
|
|
---------------------------------------------------------*/
|
|
$id_user = null;
|
|
$name = null;
|
|
|
|
if( count($_SESSION['ADMIN']) > 0 )
|
|
$id_user = $_SESSION['ADMIN']['id'];
|
|
|
|
elseif( count($_SESSION['USER']) > 0 )
|
|
$id_user = $_SESSION['USER']['id'];
|
|
|
|
else
|
|
$name = $_SESSION['NAME'];
|
|
|
|
|
|
/* (2) Create emergenct
|
|
---------------------------------------------------------*/
|
|
/* (1) Try to create entry */
|
|
$id_created = Repo::request('emergency', 'create',
|
|
$id_user,
|
|
$name,
|
|
$message,
|
|
0,
|
|
$location[0],
|
|
$location[1],
|
|
$URL_0
|
|
);
|
|
|
|
/* (2) If cannot create -> dispatch error */
|
|
if( $id_created === false )
|
|
return ['error' => new Error(Err::RepoError)];
|
|
|
|
|
|
|
|
/* (3) Send to WebSocket
|
|
---------------------------------------------------------*/
|
|
/* (1) Open socket */
|
|
$wsi = new wsinterop('localhost', 9998);
|
|
|
|
/* (2) Send data */
|
|
$wsi->send([
|
|
'operation' => 'PostMessage',
|
|
'message' => $message,
|
|
'username' => $_SESSION['NAME'],
|
|
'location' => $location,
|
|
'id' => $id_created,
|
|
'channelType' => 'Emergency',
|
|
'channelName' => "$URL_0"
|
|
]);
|
|
|
|
/* (3) Close socket */
|
|
$wsi->close();
|
|
|
|
|
|
return ['sent' => intval($id_created) ];
|
|
}
|
|
|
|
public function DELETE_emergency($argv){
|
|
extract($argv);
|
|
|
|
/* (1) Create emergenct
|
|
---------------------------------------------------------*/
|
|
/* (1) Try to create entry */
|
|
$deleted = Repo::request('emergency', 'remove', $id);
|
|
|
|
/* (2) If cannot create -> dispatch error */
|
|
if( $deleted === false )
|
|
return ['error' => new Error(Err::RepoError)];
|
|
|
|
|
|
|
|
/* (2) Send to WebSocket
|
|
---------------------------------------------------------*/
|
|
$wsi = new wsinterop("localhost",9998);
|
|
|
|
$wsi->send([
|
|
'operation' => 'DelMessage',
|
|
'id' => $id,
|
|
'channelType' => 'Emergency',
|
|
'channelName' => "$URL_0"
|
|
]);
|
|
|
|
$wsi->close();
|
|
|
|
return ["deleted" => true];
|
|
}
|
|
|
|
public function PUT_emergency($argv){
|
|
extract($argv);
|
|
|
|
$wsi = new wsinterop("localhost",9998);
|
|
|
|
$wsi->send([
|
|
"operation" => "UpdMessage",
|
|
"id" => $id,
|
|
"message" => $message,
|
|
"channelType" => "Emergency",
|
|
"channelName" => is_null($URL_0) ? "" : "$URL_0"
|
|
]);
|
|
|
|
$wsi->close();
|
|
|
|
return ["sent" => true];
|
|
//TODO: tout poster dans la BDD
|
|
}
|
|
|
|
public function POST_event($argv){
|
|
extract($argv);
|
|
|
|
$wsi = new wsinterop("localhost",9998);
|
|
|
|
$wsi->send([
|
|
"operation" => "PostMessage",
|
|
"message" => $message,
|
|
"username" => $_SESSION['NAME'],
|
|
"location" => $location,
|
|
"type" => $type,
|
|
//TODO implémenter la récupération d'id depuis la bdd
|
|
"id" => uniqid(),
|
|
"channelType" => "Event",
|
|
"channelName" => is_null($URL_0) ? "" : "$URL_0"
|
|
]);
|
|
|
|
$wsi->close();
|
|
|
|
return ["sent" => true];
|
|
//TODO: tout poster dans la BDD
|
|
}
|
|
|
|
public function DELETE_event($argv){
|
|
extract($argv);
|
|
|
|
$wsi = new wsinterop("localhost",9998);
|
|
|
|
$wsi->send([
|
|
"operation" => "DelMessage",
|
|
"id" => $id,
|
|
"channelType" => "Event",
|
|
"channelName" => is_null($URL_0) ? "" : "$URL_0"
|
|
]);
|
|
|
|
$wsi->close();
|
|
|
|
return ["sent" => true];
|
|
//TODO: tout poster dans la BDD
|
|
}
|
|
|
|
public function PUT_event($argv){
|
|
extract($argv);
|
|
|
|
$wsi = new wsinterop("localhost",9998);
|
|
|
|
$wsi->send([
|
|
"operation" => "UpdMessage",
|
|
"id" => $id,
|
|
"message" => $message,
|
|
"channelType" => "Event",
|
|
"channelName" => is_null($URL_0) ? "" : "$URL_0"
|
|
]);
|
|
|
|
$wsi->close();
|
|
|
|
return ["sent" => true];
|
|
//TODO: tout poster dans la BDD
|
|
}
|
|
|
|
} |