Handle invalid token
This commit is contained in:
@@ -3,3 +3,5 @@ enum LoadStatus { loading, loaded, error }
|
|||||||
enum ConnectionMethod { http, https }
|
enum ConnectionMethod { http, https }
|
||||||
|
|
||||||
enum SelectedTheme { system, light, dark }
|
enum SelectedTheme { system, light, dark }
|
||||||
|
|
||||||
|
enum AuthResult { success, invalidToken, other }
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
/// To regenerate, run: `dart run slang`
|
/// To regenerate, run: `dart run slang`
|
||||||
///
|
///
|
||||||
/// Locales: 2
|
/// Locales: 2
|
||||||
/// Strings: 206 (103 per locale)
|
/// Strings: 208 (104 per locale)
|
||||||
///
|
///
|
||||||
/// Built on 2024-02-24 at 00:06 UTC
|
/// Built on 2024-02-24 at 00:26 UTC
|
||||||
|
|
||||||
// coverage:ignore-file
|
// coverage:ignore-file
|
||||||
// ignore_for_file: type=lint
|
// ignore_for_file: type=lint
|
||||||
@@ -201,6 +201,7 @@ class _StringsOnboardingEn {
|
|||||||
String get connect => 'Connect';
|
String get connect => 'Connect';
|
||||||
String get connecting => 'Connecting...';
|
String get connecting => 'Connecting...';
|
||||||
String get cannotConnectToServer => 'Cannot connect to the server.';
|
String get cannotConnectToServer => 'Cannot connect to the server.';
|
||||||
|
String get invalidToken => 'Invalid token.';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: links
|
// Path: links
|
||||||
@@ -450,6 +451,7 @@ class _StringsOnboardingEs implements _StringsOnboardingEn {
|
|||||||
@override String get connect => 'Conectar';
|
@override String get connect => 'Conectar';
|
||||||
@override String get connecting => 'Conectando...';
|
@override String get connecting => 'Conectando...';
|
||||||
@override String get cannotConnectToServer => 'No se puede conectar con el servidor.';
|
@override String get cannotConnectToServer => 'No se puede conectar con el servidor.';
|
||||||
|
@override String get invalidToken => 'Token no válido.';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: links
|
// Path: links
|
||||||
@@ -656,6 +658,7 @@ extension on Translations {
|
|||||||
case 'onboarding.connect': return 'Connect';
|
case 'onboarding.connect': return 'Connect';
|
||||||
case 'onboarding.connecting': return 'Connecting...';
|
case 'onboarding.connecting': return 'Connecting...';
|
||||||
case 'onboarding.cannotConnectToServer': return 'Cannot connect to the server.';
|
case 'onboarding.cannotConnectToServer': return 'Cannot connect to the server.';
|
||||||
|
case 'onboarding.invalidToken': return 'Invalid token.';
|
||||||
case 'links.links': return 'Links';
|
case 'links.links': return 'Links';
|
||||||
case 'links.dates.todayAt': return ({required Object time}) => 'Today, ${time}';
|
case 'links.dates.todayAt': return ({required Object time}) => 'Today, ${time}';
|
||||||
case 'links.dates.yesterdayAt': return ({required Object time}) => 'Yesterday, ${time}';
|
case 'links.dates.yesterdayAt': return ({required Object time}) => 'Yesterday, ${time}';
|
||||||
@@ -767,6 +770,7 @@ extension on _StringsEs {
|
|||||||
case 'onboarding.connect': return 'Conectar';
|
case 'onboarding.connect': return 'Conectar';
|
||||||
case 'onboarding.connecting': return 'Conectando...';
|
case 'onboarding.connecting': return 'Conectando...';
|
||||||
case 'onboarding.cannotConnectToServer': return 'No se puede conectar con el servidor.';
|
case 'onboarding.cannotConnectToServer': return 'No se puede conectar con el servidor.';
|
||||||
|
case 'onboarding.invalidToken': return 'Token no válido.';
|
||||||
case 'links.links': return 'Enlaces';
|
case 'links.links': return 'Enlaces';
|
||||||
case 'links.dates.todayAt': return ({required Object time}) => 'Hoy, ${time}';
|
case 'links.dates.todayAt': return ({required Object time}) => 'Hoy, ${time}';
|
||||||
case 'links.dates.yesterdayAt': return ({required Object time}) => 'Ayer, ${time}';
|
case 'links.dates.yesterdayAt': return ({required Object time}) => 'Ayer, ${time}';
|
||||||
|
|||||||
@@ -29,7 +29,8 @@
|
|||||||
"testConnectionUrl": "Test connection url",
|
"testConnectionUrl": "Test connection url",
|
||||||
"connect": "Connect",
|
"connect": "Connect",
|
||||||
"connecting": "Connecting...",
|
"connecting": "Connecting...",
|
||||||
"cannotConnectToServer": "Cannot connect to the server."
|
"cannotConnectToServer": "Cannot connect to the server.",
|
||||||
|
"invalidToken": "Invalid token."
|
||||||
},
|
},
|
||||||
"links": {
|
"links": {
|
||||||
"links": "Links",
|
"links": "Links",
|
||||||
|
|||||||
@@ -29,7 +29,8 @@
|
|||||||
"testConnectionUrl": "Probar URL de conexión",
|
"testConnectionUrl": "Probar URL de conexión",
|
||||||
"connect": "Conectar",
|
"connect": "Conectar",
|
||||||
"connecting": "Conectando...",
|
"connecting": "Conectando...",
|
||||||
"cannotConnectToServer": "No se puede conectar con el servidor."
|
"cannotConnectToServer": "No se puede conectar con el servidor.",
|
||||||
|
"invalidToken": "Token no válido."
|
||||||
},
|
},
|
||||||
"links": {
|
"links": {
|
||||||
"links": "Enlaces",
|
"links": "Enlaces",
|
||||||
|
|||||||
@@ -111,9 +111,11 @@ FutureOr<bool> connectToServer(ConnectToServerRef ref) async {
|
|||||||
final result = await apiClient.checkConnectionInstance();
|
final result = await apiClient.checkConnectionInstance();
|
||||||
|
|
||||||
processModal.close();
|
processModal.close();
|
||||||
if (result == true) {
|
if (result == AuthResult.success) {
|
||||||
ref.read(apiClientProvider.notifier).setApiClient(apiClient);
|
ref.read(apiClientProvider.notifier).setApiClient(apiClient);
|
||||||
ref.read(serverInstancesProvider.notifier).saveNewInstance(serverInstance);
|
ref.read(serverInstancesProvider.notifier).saveNewInstance(serverInstance);
|
||||||
|
} else if (result == AuthResult.invalidToken) {
|
||||||
|
showSnacbkar(label: t.onboarding.invalidToken, color: Colors.red);
|
||||||
} else {
|
} else {
|
||||||
showSnacbkar(label: t.onboarding.cannotConnectToServer, color: Colors.red);
|
showSnacbkar(label: t.onboarding.cannotConnectToServer, color: Colors.red);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ part of 'connect.provider.dart';
|
|||||||
// RiverpodGenerator
|
// RiverpodGenerator
|
||||||
// **************************************************************************
|
// **************************************************************************
|
||||||
|
|
||||||
String _$connectToServerHash() => r'a5ff5c1030b4af6ead6fd6c4d5fdbd95c71a65cc';
|
String _$connectToServerHash() => r'78c2abcf7949674db5961ef644275d27c73bb000';
|
||||||
|
|
||||||
/// See also [connectToServer].
|
/// See also [connectToServer].
|
||||||
@ProviderFor(connectToServer)
|
@ProviderFor(connectToServer)
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import 'package:dio/dio.dart';
|
import 'package:dio/dio.dart';
|
||||||
|
|
||||||
|
import 'package:linkdy/constants/enums.dart';
|
||||||
import 'package:linkdy/models/api_response.dart';
|
import 'package:linkdy/models/api_response.dart';
|
||||||
import 'package:linkdy/models/data/bookmarks.dart';
|
import 'package:linkdy/models/data/bookmarks.dart';
|
||||||
import 'package:linkdy/models/data/check_bookmark.dart';
|
import 'package:linkdy/models/data/check_bookmark.dart';
|
||||||
@@ -16,12 +17,17 @@ class ApiClientService {
|
|||||||
required this.dioInstance,
|
required this.dioInstance,
|
||||||
});
|
});
|
||||||
|
|
||||||
Future<bool> checkConnectionInstance() async {
|
Future<AuthResult> checkConnectionInstance() async {
|
||||||
try {
|
try {
|
||||||
await dioInstance.get("/bookmarks/?limit=1");
|
await dioInstance.get("/bookmarks/?limit=1");
|
||||||
return true;
|
return AuthResult.success;
|
||||||
|
} on DioException catch (e) {
|
||||||
|
if (e.response != null && e.response!.statusCode == 401 || e.response!.statusCode == 403) {
|
||||||
|
return AuthResult.invalidToken;
|
||||||
|
}
|
||||||
|
return AuthResult.other;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return false;
|
return AuthResult.other;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user