ModelsUsers.php 3.92 KB
<?php
class ModelsUsers{
    private $result;
    private $userId;
    private $dados;
    private $msg;

    const ENTITY = 'users';

    public function listar(){
        $listar = new ModelsRead();
        $listar->exeRead('users', 'LIMIT :limit', 'limit=10');
        $this->result = $listar->getResult();
        return $this->result;
    }

    public function visualizar($userId){
        $this->userId = (int) $userId;
        $listar = new ModelsRead();
        $listar->exeRead(self::ENTITY, 'WHERE id =:id LIMIT :limit',
            "id={$this->userId}&limit=1");
        $this->result = $listar->getResult();
        return $this->result;
    }

    public function inserir(array $dados){
        $this->dados = $dados;
        $this->validarDados($dados);
        if ($this->result){
            $create = new ModelsCreate;
            $create->exeCreate(self::ENTITY, $this->dados);
            if ($create->getResult()){
                $this->result = $create->getResult();
                $this->msg = "
                        <div class='alert alert-success' role='alert'>
                          O usuário {$this->dados['nome']} foi cadastrado com sucesso!
                        </div>
                        ";
            }
        }
        return $this->result;
    }

    public function validarDados(){
            $this->dados = array_map('strip_tags', $this->dados);
            $this->dados = array_map('trim', $this->dados);
            if (in_array('', $this->dados)){
                $this->result = false;
                $this->msg = "
                        <div class='alert alert-danger' role='alert'>
                          <strong>Erro ao cadastrar:</strong> Os campos obrigatórios não foram preenchidos!
                        </div>
                ";
            }else{
                $this->dados['password'] = md5($this->dados['password']);
                $this->result = true;
            }
    }

    public function editar($userId, array $dados) {
        $this->userId = (int) $userId;
        $this->dados = $dados;

        $this->validarDados();
        if ($this->result) {
            $this->procEditar();
        }
    }

    private function procEditar() {
        $update = new ModelsUpdate();
        $update->exeUpdate(self::ENTITY, $this->dados, "WHERE id = :id", "id={$this->userId }");
        if ($update->getResult()){
            $this->msg = "
                        <div class='alert alert-success' role='alert'>
                          O usuário {$this->dados['nome']} foi editado com sucesso!
                        </div>
                        ";
            $this->result = true;
        }else{
            $this->msg = "
                        <div class='alert alert-danger' role='alert'>
                          Erro: O usuário {$this->dados['nome']} não foi editado com sucesso!
                        </div>
                ";
            $this->result = false;
        }
    }

    public function apagar($userId){
        $this->userId = (int) $userId;
        $this->dados = $this->visualizar($this->userId);
        if (count($this->dados) > 0){
            $delete = new ModelsDelete();
            $delete->exeDelete(self::ENTITY, "WHERE id = :id", "id={$this->userId }");
            $this->msg = "
                        <div class='alert alert-success' role='alert'>
                          O usuário {$this->userId} foi apagado com sucesso!
                        </div>
                        ";
            $this->result = $delete->getResult();
        }else{
            $this->msg = "
                        <div class='alert alert-danger' role='alert'>
                          Erro: O usuário {$this->userId} não foi apagado com sucesso!
                        </div>
                ";
            $this->result = false;
        }
    }

    public function getMsg()
    {
        return $this->msg;
    }

    public function getResult(){
        return $this->result;
    }
}