From 8ed93bb26503d6e8b20181e3d3d6d545aa9a01b0 Mon Sep 17 00:00:00 2001 From: Gabriel Costa de Oliveira Date: Sun, 26 Jan 2025 11:55:15 -0300 Subject: [PATCH] =?UTF-8?q?fix(#58):=20atualiza=C3=A7=C3=A3o=20do=20usuari?= =?UTF-8?q?o=20e=20logout?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../network/token_manager/repository/auth_repository.dart | 3 +-- lib/core/network/token_manager/service/auth_service.dart | 3 ++- lib/ui/edit_delete_user/view/edit_delete_user_view.dart | 2 ++ lib/ui/edit_profile/viewmodel/edit_profile_viewmodel.dart | 2 ++ lib/ui/profile/view/profile_view.dart | 4 +++- lib/ui/profile/viewmodel/profile_viewmodel.dart | 1 - 6 files changed, 10 insertions(+), 5 deletions(-) diff --git a/lib/core/network/token_manager/repository/auth_repository.dart b/lib/core/network/token_manager/repository/auth_repository.dart index 43844bf..a5c3f38 100644 --- a/lib/core/network/token_manager/repository/auth_repository.dart +++ b/lib/core/network/token_manager/repository/auth_repository.dart @@ -15,7 +15,7 @@ class AuthRepository { _userCache = user; return user; } catch (e) { - throw Exception('Erro ao obter o usuário'); + throw Exception(e); } } } @@ -23,6 +23,5 @@ class AuthRepository { Future clearUser() async { _userCache = null; StorageValue.getInstance().setJsonUser(null); - await GetIt.instance().refreshToken(); } } diff --git a/lib/core/network/token_manager/service/auth_service.dart b/lib/core/network/token_manager/service/auth_service.dart index 402d5bf..6eff162 100644 --- a/lib/core/network/token_manager/service/auth_service.dart +++ b/lib/core/network/token_manager/service/auth_service.dart @@ -34,7 +34,6 @@ class AuthService { } Future getUser() async { - Log.d("get user"); String? json = await StorageValue.getInstance().getJsonUser(); if (json != null) { @@ -46,6 +45,8 @@ class AuthService { Map json = jsonDecode(response.toString()); + if (json['userPayload'] == null) Log.e('user payload is null'); + UserModel user = UserModel.fromMap(json['userPayload']!); await StorageValue.getInstance().setJsonUser(user.toJson()); diff --git a/lib/ui/edit_delete_user/view/edit_delete_user_view.dart b/lib/ui/edit_delete_user/view/edit_delete_user_view.dart index f68c7f7..afd21cf 100644 --- a/lib/ui/edit_delete_user/view/edit_delete_user_view.dart +++ b/lib/ui/edit_delete_user/view/edit_delete_user_view.dart @@ -1,3 +1,4 @@ +import 'package:aranduapp/core/log/log.dart'; import 'package:aranduapp/ui/edit_delete_user/viewmode/edit_delte_user_viewmodel.dart'; import 'package:aranduapp/ui/login/view/login_view.dart'; import 'package:aranduapp/ui/shared/command_button.dart'; @@ -51,6 +52,7 @@ class EditDeleteUserScreen extends StatelessWidget { ); }, onErrorCallback: (e) { + Log.e(e); ScaffoldMessenger.of(context).showSnackBar( const SnackBar( content: Text('Não foi possível apagar a conta')), diff --git a/lib/ui/edit_profile/viewmodel/edit_profile_viewmodel.dart b/lib/ui/edit_profile/viewmodel/edit_profile_viewmodel.dart index 02fa785..548428b 100644 --- a/lib/ui/edit_profile/viewmodel/edit_profile_viewmodel.dart +++ b/lib/ui/edit_profile/viewmodel/edit_profile_viewmodel.dart @@ -1,5 +1,6 @@ import 'package:aranduapp/core/network/token_manager/model/user_model.dart'; import 'package:aranduapp/core/network/token_manager/repository/auth_repository.dart'; +import 'package:aranduapp/core/network/token_manager/service/auth_service.dart'; import 'package:aranduapp/core/state/command.dart'; import 'package:aranduapp/ui/edit_profile/model/edit_profile_request.dart'; import 'package:aranduapp/ui/edit_profile/service/edit_profile_service.dart'; @@ -22,6 +23,7 @@ class EditProfileViewModel extends ChangeNotifier { await GetIt.instance().edit(request); await GetIt.instance().clearUser(); + await GetIt.instance().refreshToken(); return Result.value(null); } diff --git a/lib/ui/profile/view/profile_view.dart b/lib/ui/profile/view/profile_view.dart index cd55584..02d6687 100644 --- a/lib/ui/profile/view/profile_view.dart +++ b/lib/ui/profile/view/profile_view.dart @@ -94,7 +94,9 @@ class Profile extends StatelessWidget { Navigator.push( context, MaterialPageRoute(builder: (context) => const EditProfile()), - ); + ).then((result) { + viewModel.getUserCommand.execute(); + }); }, style: ElevatedButton.styleFrom( backgroundColor: Theme.of(context).colorScheme.primary, diff --git a/lib/ui/profile/viewmodel/profile_viewmodel.dart b/lib/ui/profile/viewmodel/profile_viewmodel.dart index 14c0835..3d793d3 100644 --- a/lib/ui/profile/viewmodel/profile_viewmodel.dart +++ b/lib/ui/profile/viewmodel/profile_viewmodel.dart @@ -18,7 +18,6 @@ class ProfileViewModel extends ChangeNotifier { Future> logout() async { await StorageValue.getInstance().clear(); - await GetIt.instance().clearUser(); Log.d("Usuário deslogado com sucesso."); return Result.value(null);