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; }