diff --git a/src/Cacic/WSBundle/Controller/NeoController.php b/src/Cacic/WSBundle/Controller/NeoController.php index 5e26475..6678f7f 100644 --- a/src/Cacic/WSBundle/Controller/NeoController.php +++ b/src/Cacic/WSBundle/Controller/NeoController.php @@ -73,6 +73,7 @@ class NeoController extends Controller { $session = $request->getSession(); + $session->start(); //Gera chave criptografada $chave = "123456"; @@ -109,6 +110,9 @@ class NeoController extends Controller { return $response; } + /* + Insere o computador se não existir + */ public function getTestAction(Request $request) { //1 - Verificar se computador existe @@ -116,9 +120,14 @@ class NeoController extends Controller { $status = $request->getContent(); $em = $this->getDoctrine()->getManager(); + $logger->debug("JSON getTest:\n".$status); + + $dados = json_decode($status, true); + if (empty($dados)) { - // REtorna erro se o JSON for inválido + $logger->error("JSON INVÁLIDO!!!!!!!!!!!!!!!!!!! Erro no getTest"); + // Retorna erro se o JSON for inválido $error_msg = '{ "message": "JSON Inválido", "codigo": 1 @@ -128,7 +137,8 @@ class NeoController extends Controller { $response->setContent($error_msg); return $response; } - $logger->debug("JSON get Test status".print_r(json_decode($status, true), true)); + + $logger->debug("JSON get Test status \n".print_r(json_decode($status, true), true)); $so_json = $dados['computador']['operatingSystem']; $rede_json = $dados['computador']['networkDevices']; @@ -138,9 +148,8 @@ class NeoController extends Controller { $netmask = $rede1['netmask_ipv4']; // Pega rede - $rede = $this->getDoctrine()->getRepository('CacicCommonBundle:Rede')->getDadosRedePreColeta( $ip_computador, $netmask ); + $rede = $em->getRepository('CacicCommonBundle:Rede')->getDadosRedePreColeta( $ip_computador, $netmask ); - $logger->debug("1111111111111111111111111111111111111111111 ".print_r($so_json, true)); $so = $em->getRepository('CacicCommonBundle:So')->createIfNotExist($so_json['nomeOs']); $computador = $em->getRepository('CacicCommonBundle:Computador')->findOneBy(array( @@ -148,7 +157,8 @@ class NeoController extends Controller { 'idSo' => $so )); $logger->debug("$so".print_r($so, true)); - $logger->debug("$computador".print_r($computador, true)); + //$logger->debug("$computador".print_r($computador, true)); + //$logger->debug("111111111111111111111111111111111111111111111111"); // Regra: MAC e SO são únicos e não podem ser nulos $data = new \DateTime('NOW'); //armazena data Atual @@ -166,21 +176,8 @@ class NeoController extends Controller { $em->persist( $computador ); - } - /* - $computador->setDtHrUltAcesso( $data ); - $computador->setTeVersaoCacic( $te_versao_cacic ); - $computador->setTeVersaoGercols( $te_versao_gercols ); - $computador->setTeUltimoLogin( TagValueHelper::getValueFromTags( 'UserName' ,$computer_system ) ); - $computador->setTeIpComputador( TagValueHelper::getValueFromTags( 'IPAddress' ,$network_adapter ) ); - $computador->setNmComputador( TagValueHelper::getValueFromTags( 'Caption' ,$computer_system )); - $this->getEntityManager()->persist( $computador ); - - $acoes = $this->getEntityManager()->getRepository('CacicCommonBundle:Acao')->findAll(); - */ - // 2.1 - Se existir, atualiza hora de inclusão else { @@ -189,7 +186,6 @@ class NeoController extends Controller { //Atualiza hora de inclusão $em->persist($computador); - } // 3 - Grava no log de acesso @@ -233,20 +229,37 @@ class NeoController extends Controller { $response = new JsonResponse(); $response->setStatusCode('200'); return $response; + } + /* + * ConfigTeste + */ + public function configAction(Request $request) + { + $logger = $this->get('logger'); + $status = $request->getContent(); + $em = $this->getDoctrine()->getManager(); + $dados = json_decode($status, true); + + $response = new JsonResponse(); + $response->setStatusCode('200'); + return $response; } /** * Função para validar a sessão */ public function checkSession(Session $session) { + $logger = $this->get('logger'); $session->getMetadataBag()->getCreated(); $session->getMetadataBag()->getLastUsed(); if(time() - $session->getMetadataBag()->getLastUsed() > $this->maxIdleTime) { $session->invalidate(); - throw new SessionExpired(); // direciona para a página de sessão expirada + $logger->error("Sessão inválida:\n".$session->getId()); + //throw new SessionExpired(); // direciona para a página de sessão expirada + return false; } else{ diff --git a/src/Cacic/WSBundle/Resources/config/routing.yml b/src/Cacic/WSBundle/Resources/config/routing.yml index 283b2c0..63f18ee 100644 --- a/src/Cacic/WSBundle/Resources/config/routing.yml +++ b/src/Cacic/WSBundle/Resources/config/routing.yml @@ -50,7 +50,7 @@ cacic_neo_home: schemes: [https] cacic_neo_home_login: - pattern: /neo/login + pattern: /neo/getLogin defaults: { _controller: CacicWSBundle:Neo:login } #schemes: [https] @@ -64,4 +64,8 @@ cacic_neo_home_gettest: defaults: { _controller: CacicWSBundle:Neo:getTest } #schemes: [https] +cacic_neo_home_config: + pattern: /neo/config + defaults: { _controller: CacicWSBundle:Neo:config } + #schemes: [https] diff --git a/src/Cacic/WSBundle/Tests/Controller/NeoControllerTest.php b/src/Cacic/WSBundle/Tests/Controller/NeoControllerTest.php index 5d57b48..5b3afae 100644 --- a/src/Cacic/WSBundle/Tests/Controller/NeoControllerTest.php +++ b/src/Cacic/WSBundle/Tests/Controller/NeoControllerTest.php @@ -43,7 +43,6 @@ class NeoControllerTest extends WebTestCase '{}' ); - $logger = $this->container->get('logger'); //$logger->debug("11111111111111111111111111111111111111 ".print_r($client->getRequest()->getUriForPath('/'), true)); @@ -53,13 +52,13 @@ class NeoControllerTest extends WebTestCase /** * test login */ - public function testLogin() + public function testGetLogin() { $logger = $this->container->get('logger'); $this->client->request( 'POST', - '/ws/neo/login', + '/ws/neo/getLogin', array(), array(), array( @@ -96,7 +95,7 @@ class NeoControllerTest extends WebTestCase $logger = $this->container->get('logger'); $this->client->request( 'POST', - '/ws/neo/login', + '/ws/neo/getLogin', array(), array(), array( @@ -183,12 +182,63 @@ class NeoControllerTest extends WebTestCase $response = $this->client->getResponse(); $status = $response->getStatusCode(); - $logger->debug("Response status AAAAAAAAAAAAAAAAAAAAAAAAAAAA: $status"); + $logger->debug("Response status: $status"); $this->assertEquals($status, 200); } + /** + * Testconfig + */ + public function testConfig() { + $logger = $this->container->get('logger'); + $this->client->request( + 'POST', + '/ws/neo/config', + array(), + array(), + array( + 'CONTENT_TYPE' => 'application/json', + //'HTTPS' => true + ), + '{ + "computador": { + "networkDevices": [ + { + "ipv4": "10.1.0.56", + "ipv6": "fe80::295b:a8db:d433:ebe%4", + "mac": "9C:D2:1E:EA:E0:89", + "netmask_ipv4": "255.255.255.0", + "netmask_ipv6": "ffff:ffff:ffff:ffff::", + "nome": "Wi-Fi" + }, + { + "ipv4": "192.168.56.1", + "ipv6": "fe80::19f2:4739:8a9e:45e4%16", + "mac": "08:00:27:00:14:2B", + "netmask_ipv4": "255.255.255.0", + "netmask_ipv6": "ffff:ffff:ffff:ffff::", + "nome": "VirtualBox Host-Only Network" + } + ], + "operatingSystem": { + "idOs": 176, + "nomeOs": "Windows_NT" + }, + "usuario": "Eric Menezes" + } + }' + ); + $logger->debug("Dados JSON do computador enviados \n".$this->client->getRequest()->getcontent()); + + $response = $this->client->getResponse(); + $status = $response->getStatusCode(); + $logger->debug("Response status: $status"); + + $this->assertEquals($status, 200); + + } /** * Método que apaga todos os dados criados no teste -- libgit2 0.21.2