Skip to content

Commit 8870344

Browse files
committed
fix: handle guest auth state and add Flutter CI
1 parent d9f29e3 commit 8870344

5 files changed

Lines changed: 48 additions & 1 deletion

File tree

.github/workflows/flutter-ci.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
name: Flutter CI
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
jobs:
10+
verify:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- name: Check out repository
14+
uses: actions/checkout@v4
15+
16+
- name: Set up Flutter
17+
uses: subosito/flutter-action@v2
18+
with:
19+
channel: stable
20+
cache: true
21+
22+
- name: Install dependencies
23+
run: flutter pub get
24+
25+
- name: Analyze
26+
run: flutter analyze
27+
28+
- name: Test
29+
run: flutter test

lib/src/core/storage/secure_storage_service.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,8 @@ class SecureStorageService {
1717
Future<String?> read({required String key}) async {
1818
return await _storage.read(key: key);
1919
}
20+
21+
Future<void> delete({required String key}) async {
22+
await _storage.delete(key: key);
23+
}
2024
}

lib/src/features/auth/data/datasources/auth_remote_datasource.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@ class AuthRemoteDatasource {
3838
}
3939
}
4040

41+
Future<void> logout() async {
42+
await client.service.delete(key: 'token');
43+
}
44+
4145
Future<String> register(RegisterRequest request) async {
4246
final response = await client.post(
4347
Uri.parse(ApiEndpoints.register),

lib/src/features/auth/data/repositories/auth_repository_impl.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class AuthRepositoryImpl implements AuthRepository {
1616

1717
@override
1818
Future<void> logout() {
19-
throw UnimplementedError();
19+
return remoteDatasource.logout();
2020
}
2121

2222
@override

lib/src/features/auth/presentation/providers/auth_provider.dart

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ class AuthProvider extends ChangeNotifier {
5656

5757
Future<void> login(LoginRequest request) async {
5858
_loginError = null;
59+
_currentUserError = null;
5960
try {
6061
_isLoggingIn = true;
6162
notifyListeners();
@@ -70,6 +71,7 @@ class AuthProvider extends ChangeNotifier {
7071

7172
Future<void> register(RegisterRequest request) async {
7273
_registerError = null;
74+
_currentUserError = null;
7375
try {
7476
_isRegistering = true;
7577
notifyListeners();
@@ -98,6 +100,14 @@ class AuthProvider extends ChangeNotifier {
98100

99101
Future<void> getCurrentUser() async {
100102
_currentUserError = null;
103+
final token = await SecureStorageService().read(key: 'token');
104+
if (token == null || token.isEmpty) {
105+
_currentUser = null;
106+
_isLoading = false;
107+
notifyListeners();
108+
return;
109+
}
110+
101111
try {
102112
_isLoading = true;
103113
notifyListeners();

0 commit comments

Comments
 (0)