@@ -28,11 +28,11 @@ class AuthRepository implements AuthRepositoryInterface {
2828 void authStateChange (
2929 void Function (UserEntity ? userEntity) callback,
3030 ) {
31- authClient.onAuthStateChange ((event, session ) {
32- switch (event) {
31+ authClient.onAuthStateChange. listen ((data ) {
32+ switch (data. event) {
3333 case supabase.AuthChangeEvent .signedIn:
3434 callback (
35- UserEntity .fromJson (session! .user! .toJson ()),
35+ UserEntity .fromJson (data. session! .user.toJson ()),
3636 );
3737
3838 break ;
@@ -41,12 +41,13 @@ class AuthRepository implements AuthRepositoryInterface {
4141 break ;
4242 case supabase.AuthChangeEvent .userUpdated:
4343 callback (
44- UserEntity .fromJson (session! .user! .toJson ()),
44+ UserEntity .fromJson (data. session! .user.toJson ()),
4545 );
4646 break ;
4747 case supabase.AuthChangeEvent .passwordRecovery:
4848 case supabase.AuthChangeEvent .tokenRefreshed:
49- break ;
49+ case supabase.AuthChangeEvent .userDeleted:
50+ case supabase.AuthChangeEvent .mfaChallengeVerified:
5051 }
5152 });
5253 }
@@ -56,49 +57,49 @@ class AuthRepository implements AuthRepositoryInterface {
5657 Future <Either <Failure , UserEntity >> setSession (String token) async {
5758 final response = await authClient.setSession (token);
5859 await authTokenLocalDataSource
59- .store (response.data ? .persistSessionString ?? '' );
60+ .store (response.session ? .persistSessionString ?? '' );
6061
61- final data = response.data ;
62+ final data = response.session ;
6263
63- if (response.error != null || response. data == null ) {
64+ if (data == null ) {
6465 await authTokenLocalDataSource.remove ();
65- return left (const Failure .unauthorized ());
66+ return left (Failure .unauthorized (StackTrace .current ));
6667 }
6768
68- return right (UserEntity .fromJson (data! .user! .toJson ()));
69+ return right (UserEntity .fromJson (data.user.toJson ()));
6970 }
7071
7172 /// Recovers session from local storage and refreshes tokens
7273 @override
7374 Future <Either <Failure , UserEntity >> restoreSession () async {
7475 final res = authTokenLocalDataSource.get ();
7576 if (res.isLeft ()) {
76- return left (const Failure .empty ());
77+ return left (Failure .empty (StackTrace .current ));
7778 }
7879
7980 final response = await authClient.recoverSession (res.getOrElse ((_) => '' ));
80- final data = response.data ;
81+ final data = response.session ;
8182
82- if (response.error != null || response.data == null ) {
83+ if (response.session == null ) {
8384 await authTokenLocalDataSource.remove ();
84- return left (const Failure .unauthorized ());
85+ return left (Failure .unauthorized (StackTrace .current ));
8586 }
8687
8788 await authTokenLocalDataSource
88- .store (response.data ? .persistSessionString ?? '' );
89+ .store (response.session ? .persistSessionString ?? '' );
8990
90- return right (UserEntity .fromJson (data! .user! .toJson ()));
91+ return right (UserEntity .fromJson (data! .user.toJson ()));
9192 }
9293
9394 /// Signs in user to the application
9495 @override
9596 Future <Either <Failure , bool >> signInWithGoogle () async {
9697 log ('here2' );
97- final res = await authClient.signInWithProvider (
98+ final res = await authClient.signInWithOAuth (
9899 supabase.Provider .google,
99100 );
100101 if (! res) {
101- return left (const Failure .badRequest ());
102+ return left (Failure .badRequest (StackTrace .current ));
102103 }
103104 return right (true );
104105 }
@@ -107,11 +108,11 @@ class AuthRepository implements AuthRepositoryInterface {
107108 @override
108109 Future <Either <Failure , bool >> signOut () async {
109110 await authTokenLocalDataSource.remove ();
110-
111- final res = await authClient.signOut ();
112- if (res.error != null ) {
113- return left (const Failure .badRequest ());
111+ try {
112+ await authClient.signOut ();
113+ return right (true );
114+ } catch (e) {
115+ return left (Failure .badRequest (StackTrace .current));
114116 }
115- return right (true );
116117 }
117118}
0 commit comments