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