93 lines
3.3 KiB
PHP
93 lines
3.3 KiB
PHP
<?php
|
|
|
|
namespace Cadoles\CoreBundle\Controller;
|
|
|
|
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
|
use Symfony\Component\HttpFoundation\Request;
|
|
use Symfony\Component\HttpFoundation\Session\Session;
|
|
use Symfony\Component\HttpFoundation\Response;
|
|
|
|
use Cadoles\CoreBundle\Entity\Server;
|
|
use Cadoles\CoreBundle\Entity\ServerApplication;
|
|
|
|
class ApiController extends Controller
|
|
{
|
|
private $fgdebug = false;
|
|
|
|
public function apiAction(Request $request)
|
|
{
|
|
if($this->fgdebug) {
|
|
echo "<br>";
|
|
echo "IDSERVER = ".$request->request->get("idserver")."<br>";
|
|
echo "IDLOCAL = ".$request->request->get("idlocal")."<br>";
|
|
echo "NAME = ".$request->request->get("name")."<br>";
|
|
echo "MODULE = ".$request->request->get("module")."<br>";
|
|
echo "VERSION = ".$request->request->get("version")."<br>";
|
|
echo "APPS = ".$request->request->get("apps")."<br><br>";
|
|
}
|
|
|
|
$idserver = $request->request->get("idserver");
|
|
$idlocal = $request->request->get("idlocal");
|
|
$name = $request->request->get("name");
|
|
$module = $request->request->get("module");
|
|
$version = $request->request->get("version");
|
|
$apps = explode(";",$request->request->get("apps"));
|
|
$now = new \DateTime();
|
|
|
|
// Création / Modification du server appelant
|
|
$em = $this->getDoctrine()->getManager();
|
|
$server=$em->getRepository('CadolesCoreBundle:Server')->findOneBy(["idserver"=>$idserver]);
|
|
if(!$server) {
|
|
$server=new Server();
|
|
}
|
|
|
|
$server->setIdserver($idserver);
|
|
$server->setIdlocal($idlocal);
|
|
$server->setName($name);
|
|
$server->setModule($module);
|
|
$server->setVersion($version);
|
|
$server->setUpdatedate($now);
|
|
|
|
// Sauvegarde
|
|
$em->persist($server);
|
|
$em->flush();
|
|
|
|
// Décryptage des paquets envole entrant
|
|
$tbapps=[];
|
|
if($this->fgdebug) echo "APPLICATIONS<br>";
|
|
foreach($apps as $app) {
|
|
$tmp=explode("-",$app);
|
|
$tmpname="";
|
|
for($i=0;$i<count($tmp)-2;$i++) {
|
|
$tmpname.=$tmp[$i];
|
|
if(($i+1)<(count($tmp)-2)) $tmpname.="-";
|
|
}
|
|
|
|
if($this->fgdebug) echo $tmpname."<br>";
|
|
$tbapps["$tmpname"]=$app;
|
|
}
|
|
|
|
// Pour chaque apps
|
|
foreach($tbapps as $package => $version) {
|
|
$application=$em->getRepository('CadolesCoreBundle:Application')->findOneBy(["package"=>$package]);
|
|
if($application) {
|
|
$serveurapplication=$em->getRepository('CadolesCoreBundle:ServerApplication')->findOneBy(["server"=>$server,"application"=>$application]);
|
|
if(!$serveurapplication) {
|
|
$serveurapplication=new ServerApplication();
|
|
$serveurapplication->setServer($server);
|
|
$serveurapplication->setApplication($application);
|
|
}
|
|
|
|
$serveurapplication->setVersion($version);
|
|
$serveurapplication->setUpdatedate($now);
|
|
|
|
// Sauvegarde
|
|
$em->persist($serveurapplication);
|
|
$em->flush();
|
|
}
|
|
}
|
|
|
|
return new Response();
|
|
}
|
|
}
|