Updated onboarding, reformatted files, improved referenced documents view, updated error handling

This commit is contained in:
Anton Stubenbord
2022-11-03 22:15:36 +01:00
parent 2f2312d5f3
commit 40133b6e0e
117 changed files with 1788 additions and 1021 deletions

View File

@@ -22,13 +22,19 @@ class AuthenticationInterceptor implements InterceptorContract {
}
return request.copyWith(
//Append server Url
url: Uri.parse(authState.authentication!.serverUrl + request.url.toString()),
url: Uri.parse(
authState.authentication!.serverUrl + request.url.toString()),
headers: authState.authentication!.token.isEmpty
? request.headers
: {...request.headers, 'Authorization': 'Token ${authState.authentication!.token}'},
: {
...request.headers,
'Authorization': 'Token ${authState.authentication!.token}'
},
);
}
@override
Future<BaseResponse> interceptResponse({required BaseResponse response}) async => response;
Future<BaseResponse> interceptResponse(
{required BaseResponse response}) async =>
response;
}

View File

@@ -4,24 +4,22 @@ import 'package:paperless_mobile/features/login/bloc/authentication_cubit.dart';
import 'package:http_interceptor/http_interceptor.dart';
import 'package:injectable/injectable.dart';
@Deprecated("Delegated to TimeoutClient!")
@injectable
class ConnectionStateInterceptor implements InterceptorContract {
final AuthenticationCubit authenticationCubit;
final ConnectivityStatusService connectivityStatusService;
ConnectionStateInterceptor(this.authenticationCubit, this.connectivityStatusService);
ConnectionStateInterceptor(
this.authenticationCubit, this.connectivityStatusService);
@override
Future<BaseRequest> interceptRequest({required BaseRequest request}) async {
if (!(await connectivityStatusService.isConnectedToInternet())) {
throw const ErrorMessage(ErrorCode.deviceOffline);
}
final isServerReachable = await connectivityStatusService.isServerReachable(request.url.origin);
if (!isServerReachable) {
throw const ErrorMessage(ErrorCode.serverUnreachable);
}
return request;
}
@override
Future<BaseResponse> interceptResponse({required BaseResponse response}) async => response;
Future<BaseResponse> interceptResponse(
{required BaseResponse response}) async =>
response;
}

View File

@@ -14,12 +14,15 @@ class LanguageHeaderInterceptor implements InterceptorContract {
if (appSettingsCubit.state.preferredLocaleSubtag == "en") {
languages = "en";
} else {
languages = appSettingsCubit.state.preferredLocaleSubtag + ",en;q=0.7,en-US;q=0.6";
languages = appSettingsCubit.state.preferredLocaleSubtag +
",en;q=0.7,en-US;q=0.6";
}
request.headers.addAll({"Accept-Language": languages});
return request;
}
@override
Future<BaseResponse> interceptResponse({required BaseResponse response}) async => response;
Future<BaseResponse> interceptResponse(
{required BaseResponse response}) async =>
response;
}

View File

@@ -7,11 +7,14 @@ const interceptedRoutes = ['thumb/'];
@injectable
class ResponseConversionInterceptor implements InterceptorContract {
@override
Future<BaseRequest> interceptRequest({required BaseRequest request}) async => request;
Future<BaseRequest> interceptRequest({required BaseRequest request}) async =>
request;
@override
Future<BaseResponse> interceptResponse({required BaseResponse response}) async {
final String requestUrl = response.request?.url.toString().split("?").first ?? '';
Future<BaseResponse> interceptResponse(
{required BaseResponse response}) async {
final String requestUrl =
response.request?.url.toString().split("?").first ?? '';
if (response.request?.method == "GET" &&
interceptedRoutes.any((element) => requestUrl.endsWith(element))) {
final resp = response as Response;