<?php 
namespace App\Router; 
 
use App\Controller\UsuarioController; 
use App\Model\Usuarios; 
use App\Controller\TokenController; 
use App\Controller\PerfilController; 
use App\Model\Perfis; 
function addUsuarioRoutes($router) { 
    $router->mount('/Usuarios', function () use ($router) { 
        $router->get('/', function () { 
            $permitido = new TokenController(); 
            $permitido->autorizado(); 
            $usuario = new Usuarios(); 
            $usuariosController = new UsuarioController($usuario); 
            $resultado = $usuariosController->listarUsuarios(); 
             
            if(!$resultado){ 
                echo json_encode(["status" => false, "Usuarios" => $resultado,"mensagem"=>"nenhum resultado encontrado"]); 
                exit; 
            }else{ 
                echo json_encode(["status" => true, "Usuarios" => $resultado]); 
                exit; 
            } 
        }); 
 
        $router->get('/([a-z0-9_-]+)', function ($id) { 
            $permitido = new TokenController(); 
            $permitido->autorizado(); 
            $usuario = new Usuarios(); 
            $usuariosController = new UsuarioController($usuario); 
            $resultado = $usuariosController->buscarPorId($id); 
                if(!$resultado){ 
                    echo json_encode(["status" => false, "Usuarios" => $resultado,"mensagem"=>"nenhum resultado encontrado"]); 
                    exit; 
                }else{ 
                    echo json_encode(["status" => true, "Usuario" => $resultado]); 
                    exit; 
                } 
        }); 
 
        $router->put('/', function () { 
            $permitido = new TokenController(); 
            $permitido->autorizado(); 
            $body = json_decode(file_get_contents('php://input'), true); 
            $usuario = new Usuarios(); 
            $usuario->setId(0); 
            $usuario->setNome(0); 
            $usuario->setSenha(0); 
            $usuario->setPerfilId(0); 
            $usuario->setEmail($body['email']); 
            $usuario->setAtivo($body['chk']); 
            $usuariosController = new UsuarioController($usuario); 
            $resultado = $usuariosController->bloquearPorEmail();  
            echo json_encode(['status' => $resultado]); 
        }); 
        $router->put('/perfil', function () { 
            $permitido = new TokenController(); 
            $permitido->autorizado(); 
            $body = json_decode(file_get_contents('php://input'), true); 
            $usuario = new Usuarios(); 
            $usuario->setId(0); 
            $usuario->setNome(0); 
            $usuario->setSenha(0); 
            $usuario->setPerfilId($body['perf']); 
            $usuario->setEmail($body['email']); 
            $usuario->setAtivo(0); 
            $usuariosController = new UsuarioController($usuario); 
            $resultado = $usuariosController->AlterarPerfil();  
            echo json_encode(['status' => $resultado]); 
        }); 
        $router->put('/trocasenha', function () { 
            $permitido = new TokenController(); 
            $permitido->autorizado(); 
            $body = json_decode(file_get_contents('php://input'), true); 
            $novasenha = $body['resenha']; 
            $usuario = new Usuarios(); 
            $usuario->setId(0); 
            $usuario->setNome(0); 
            $usuario->setSenha($body['resenha']); 
            $usuario->setPerfilId(0); 
            $usuario->setEmail($body['email']); 
            $usuario->setAtivo(0); 
            $usuariosController = new UsuarioController($usuario); 
            $resultado = $usuariosController->Alterarsenha($body['senha'],$novasenha);  
            echo json_encode( $resultado); 
        }); 
        $router->post('/Registrar', function () { 
            $body = json_decode(file_get_contents('php://input'), true); 
            $usuario = new Usuarios(); 
            $perfil = new Perfis(); 
            $Perfilcontroller = new PerfilController($perfil); 
            $perfilresultado = $Perfilcontroller->listarPerfis(); 
            foreach($perfilresultado as $value){ 
                if ($value["nome"] === 'comum') {  
                    $usuario->setPerfilId($value["id"]); 
                } 
                 
            } 
            $usuario->setNome($body['nome']); 
            $usuario->setEmail($body['email']); 
            $usuario->setSenha($body['senha']); 
             
            $usuario->setAtivo(1); 
            $usuariosController = new UsuarioController($usuario); 
            $resultado = $usuariosController->adicionarUsuario(); 
            echo json_encode(['status' => $resultado]); 
        }); 
        $router->post('/login', function () { 
            $body = json_decode(file_get_contents('php://input'), true); 
            $usuario = new Usuarios(); 
            if (isset($body['email'])) { 
                $usuario->setEmail($body['email']); 
                $senha=$body['senha']; 
                $lembrar=$body['lembrar']; 
                $usuariosController = new UsuarioController($usuario); 
                $resultado = $usuariosController->login($senha,$lembrar); 
                if(!$resultado['status']){ 
                    echo json_encode(['status' => $resultado['status'], 'message' => $resultado['message']]); 
                   exit; 
                } 
                echo json_encode(['status' => $resultado['status'], 'message' => $resultado['message'],'user'=>$resultado['user'],'token'=>$resultado['token']]); 
                exit; 
            } 
        }); 
        $router->post('/recuperarsenha', function () { 
            $body = json_decode(file_get_contents('php://input'), true); 
            $usuario = new Usuarios(); 
            if (isset($body['email'])) { 
                $usuario->setEmail($body['email']); 
                $usuariosController = new UsuarioController($usuario); 
                $resultado = $usuariosController->recupasenha(); 
                if(!$resultado['status']){ 
                    echo json_encode(['status' => $resultado['status'], 'message' => $resultado['message']]); 
                   exit; 
                } 
                echo json_encode(['status' => $resultado['status'], 'message' => $resultado['message']]); 
                exit; 
            } 
        }); 
        $router->delete('/', function () { 
            $permitido = new TokenController(); 
            $permitido->autorizado(); 
            $body = json_decode(file_get_contents('php://input'), true); 
            $usuario = new Usuarios(); 
            $usuario->setEmail($body['email']); 
            $usuariosController = new UsuarioController($usuario); 
            $resultado = $usuariosController->removerUsuario(); 
            if(!$resultado){ 
                echo json_encode(['status' => false, 'message' => 'Não pode remover']); 
               exit; 
            } 
            echo json_encode(['status' => true, 'message' => 'Removido com sucesso']); 
            exit; 
        }); 
    }); 
} 
 
 
 |