Пример #1
0
 public function login()
 {
     $dataPost = $this->request->getJsonRawBody();
     $usuario = $dataPost->login;
     $senha = md5($dataPost->senha);
     $query = Funcionario::query()->where('login = :login:'******'senha = :senha:')->bind(['login' => $usuario, 'senha' => $senha])->execute();
     if ($query->count() == 1) {
         $result = $query[0];
         $token = base64_encode(uniqid("user_id={$result->getId()}", true));
         $m = $this->getDI()->get('memcached');
         $memCacheResult = $m->set($token, ['login' => $result->getLogin(), 'nome' => $result->getNome()], time() + Settings::LOGIN_EXPIRATION);
         if (!$memCacheResult) {
             throw new \Exception("Erro ao armazenar token: " . \Memcached::getResultCode(), StatusCodes::ERRO_SERVIDOR);
         }
         return ['success' => true, 'token' => $token, 'usuario' => ['login' => $result->getLogin(), 'nome' => $result->getNome()]];
     } else {
         throw new \Exception("Usuário e/ou senha incorretos", StatusCodes::NAO_AUTORIZADO);
     }
 }
 /**
  * Cria objeto do funcionario com base nos dados enviados por POST via JSON, caso seja passado o funcionario será considerado edição do mesmo
  * 
  * @param Funcionario $funcionario
  * @return Funcionario
  */
 private function createFuncionarioFromJsonRawData(Funcionario $funcionario = NULL)
 {
     $dataPost = $this->request->getJsonRawBody();
     if (is_null($funcionario)) {
         $funcionario = new Funcionario();
     }
     $funcionario->setNome($dataPost->nome);
     $funcionario->setLogin($dataPost->login);
     $funcionario->setStatus($dataPost->status);
     $funcionario->setDataAdmissao($dataPost->data_admissao);
     $funcionario->setDataNascimento($dataPost->data_nascimento);
     $funcionario->setSenha(md5($dataPost->senha));
     $funcionario->funcionarioContatos = $this->createFuncionarioContatos($dataPost);
     $funcionario->funcionarioEnderecos = $this->createFuncionarioEnderecos($dataPost);
     $funcionario->projetoFuncionarios = $this->createFuncionarioProjetos($dataPost);
     $funcionario->departamentosFuncionario = $this->createFuncionarioDepartamentos($dataPost);
     return $funcionario;
 }