/** * @param array $oauthData * @param string $name * @param string $email * @param string $bio * @param string $redirectTo * @return string */ public function create(array $oauthData, $name, $email, $bio, $redirectTo) { try { $user = $this->userManager->create($oauthData['provider'], $oauthData['user'], $name, $email, !empty($bio) ? $bio : null); $this->authService->saveLoggedUser($user); return json_encode(array('data' => array('id' => $user->getId(), 'username' => $user->getDefaultProfile()->getUsername()), 'redirectTo' => $redirectTo)); } catch (InvalidArgumentException $error) { return json_encode(array('error' => $error->getMessage())); } catch (PDOException $error) { return json_encode(array('error' => 'Não foi possível salvar os dados na camada de persistência')); } catch (Exception $error) { return json_encode(array('error' => 'Erro interno no processamento da requisição')); } }