mirror of
https://github.com/Xevion/paperless-mobile.git
synced 2025-12-10 22:07:55 -06:00
feat: Externalize settings into LocalUserAppState, fix bugs
This commit is contained in:
@@ -14,7 +14,7 @@ class IdQueryParameter with _$IdQueryParameter {
|
||||
@HiveType(typeId: PaperlessApiHiveTypeIds.anyAssignedIdQueryParameter)
|
||||
const factory IdQueryParameter.anyAssigned() = AnyAssignedIdQueryParameter;
|
||||
@HiveType(typeId: PaperlessApiHiveTypeIds.setIdQueryParameter)
|
||||
const factory IdQueryParameter.fromId(@HiveField(0) int? id) = SetIdQueryParameter;
|
||||
const factory IdQueryParameter.fromId(@HiveField(0) int id) = SetIdQueryParameter;
|
||||
|
||||
Map<String, String> toQueryParameter(String field) {
|
||||
return when(
|
||||
|
||||
@@ -38,7 +38,7 @@ mixin _$IdQueryParameter {
|
||||
required TResult Function() unset,
|
||||
required TResult Function() notAssigned,
|
||||
required TResult Function() anyAssigned,
|
||||
required TResult Function(@HiveField(0) int? id) fromId,
|
||||
required TResult Function(@HiveField(0) int id) fromId,
|
||||
}) =>
|
||||
throw _privateConstructorUsedError;
|
||||
@optionalTypeArgs
|
||||
@@ -46,7 +46,7 @@ mixin _$IdQueryParameter {
|
||||
TResult? Function()? unset,
|
||||
TResult? Function()? notAssigned,
|
||||
TResult? Function()? anyAssigned,
|
||||
TResult? Function(@HiveField(0) int? id)? fromId,
|
||||
TResult? Function(@HiveField(0) int id)? fromId,
|
||||
}) =>
|
||||
throw _privateConstructorUsedError;
|
||||
@optionalTypeArgs
|
||||
@@ -54,7 +54,7 @@ mixin _$IdQueryParameter {
|
||||
TResult Function()? unset,
|
||||
TResult Function()? notAssigned,
|
||||
TResult Function()? anyAssigned,
|
||||
TResult Function(@HiveField(0) int? id)? fromId,
|
||||
TResult Function(@HiveField(0) int id)? fromId,
|
||||
required TResult orElse(),
|
||||
}) =>
|
||||
throw _privateConstructorUsedError;
|
||||
@@ -155,7 +155,7 @@ class _$UnsetIdQueryParameter extends UnsetIdQueryParameter {
|
||||
required TResult Function() unset,
|
||||
required TResult Function() notAssigned,
|
||||
required TResult Function() anyAssigned,
|
||||
required TResult Function(@HiveField(0) int? id) fromId,
|
||||
required TResult Function(@HiveField(0) int id) fromId,
|
||||
}) {
|
||||
return unset();
|
||||
}
|
||||
@@ -166,7 +166,7 @@ class _$UnsetIdQueryParameter extends UnsetIdQueryParameter {
|
||||
TResult? Function()? unset,
|
||||
TResult? Function()? notAssigned,
|
||||
TResult? Function()? anyAssigned,
|
||||
TResult? Function(@HiveField(0) int? id)? fromId,
|
||||
TResult? Function(@HiveField(0) int id)? fromId,
|
||||
}) {
|
||||
return unset?.call();
|
||||
}
|
||||
@@ -177,7 +177,7 @@ class _$UnsetIdQueryParameter extends UnsetIdQueryParameter {
|
||||
TResult Function()? unset,
|
||||
TResult Function()? notAssigned,
|
||||
TResult Function()? anyAssigned,
|
||||
TResult Function(@HiveField(0) int? id)? fromId,
|
||||
TResult Function(@HiveField(0) int id)? fromId,
|
||||
required TResult orElse(),
|
||||
}) {
|
||||
if (unset != null) {
|
||||
@@ -293,7 +293,7 @@ class _$NotAssignedIdQueryParameter extends NotAssignedIdQueryParameter {
|
||||
required TResult Function() unset,
|
||||
required TResult Function() notAssigned,
|
||||
required TResult Function() anyAssigned,
|
||||
required TResult Function(@HiveField(0) int? id) fromId,
|
||||
required TResult Function(@HiveField(0) int id) fromId,
|
||||
}) {
|
||||
return notAssigned();
|
||||
}
|
||||
@@ -304,7 +304,7 @@ class _$NotAssignedIdQueryParameter extends NotAssignedIdQueryParameter {
|
||||
TResult? Function()? unset,
|
||||
TResult? Function()? notAssigned,
|
||||
TResult? Function()? anyAssigned,
|
||||
TResult? Function(@HiveField(0) int? id)? fromId,
|
||||
TResult? Function(@HiveField(0) int id)? fromId,
|
||||
}) {
|
||||
return notAssigned?.call();
|
||||
}
|
||||
@@ -315,7 +315,7 @@ class _$NotAssignedIdQueryParameter extends NotAssignedIdQueryParameter {
|
||||
TResult Function()? unset,
|
||||
TResult Function()? notAssigned,
|
||||
TResult Function()? anyAssigned,
|
||||
TResult Function(@HiveField(0) int? id)? fromId,
|
||||
TResult Function(@HiveField(0) int id)? fromId,
|
||||
required TResult orElse(),
|
||||
}) {
|
||||
if (notAssigned != null) {
|
||||
@@ -431,7 +431,7 @@ class _$AnyAssignedIdQueryParameter extends AnyAssignedIdQueryParameter {
|
||||
required TResult Function() unset,
|
||||
required TResult Function() notAssigned,
|
||||
required TResult Function() anyAssigned,
|
||||
required TResult Function(@HiveField(0) int? id) fromId,
|
||||
required TResult Function(@HiveField(0) int id) fromId,
|
||||
}) {
|
||||
return anyAssigned();
|
||||
}
|
||||
@@ -442,7 +442,7 @@ class _$AnyAssignedIdQueryParameter extends AnyAssignedIdQueryParameter {
|
||||
TResult? Function()? unset,
|
||||
TResult? Function()? notAssigned,
|
||||
TResult? Function()? anyAssigned,
|
||||
TResult? Function(@HiveField(0) int? id)? fromId,
|
||||
TResult? Function(@HiveField(0) int id)? fromId,
|
||||
}) {
|
||||
return anyAssigned?.call();
|
||||
}
|
||||
@@ -453,7 +453,7 @@ class _$AnyAssignedIdQueryParameter extends AnyAssignedIdQueryParameter {
|
||||
TResult Function()? unset,
|
||||
TResult Function()? notAssigned,
|
||||
TResult Function()? anyAssigned,
|
||||
TResult Function(@HiveField(0) int? id)? fromId,
|
||||
TResult Function(@HiveField(0) int id)? fromId,
|
||||
required TResult orElse(),
|
||||
}) {
|
||||
if (anyAssigned != null) {
|
||||
@@ -521,7 +521,7 @@ abstract class _$$SetIdQueryParameterCopyWith<$Res> {
|
||||
$Res Function(_$SetIdQueryParameter) then) =
|
||||
__$$SetIdQueryParameterCopyWithImpl<$Res>;
|
||||
@useResult
|
||||
$Res call({@HiveField(0) int? id});
|
||||
$Res call({@HiveField(0) int id});
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
@@ -535,13 +535,13 @@ class __$$SetIdQueryParameterCopyWithImpl<$Res>
|
||||
@pragma('vm:prefer-inline')
|
||||
@override
|
||||
$Res call({
|
||||
Object? id = freezed,
|
||||
Object? id = null,
|
||||
}) {
|
||||
return _then(_$SetIdQueryParameter(
|
||||
freezed == id
|
||||
null == id
|
||||
? _value.id
|
||||
: id // ignore: cast_nullable_to_non_nullable
|
||||
as int?,
|
||||
as int,
|
||||
));
|
||||
}
|
||||
}
|
||||
@@ -559,7 +559,7 @@ class _$SetIdQueryParameter extends SetIdQueryParameter {
|
||||
|
||||
@override
|
||||
@HiveField(0)
|
||||
final int? id;
|
||||
final int id;
|
||||
|
||||
@JsonKey(name: 'runtimeType')
|
||||
final String $type;
|
||||
@@ -594,7 +594,7 @@ class _$SetIdQueryParameter extends SetIdQueryParameter {
|
||||
required TResult Function() unset,
|
||||
required TResult Function() notAssigned,
|
||||
required TResult Function() anyAssigned,
|
||||
required TResult Function(@HiveField(0) int? id) fromId,
|
||||
required TResult Function(@HiveField(0) int id) fromId,
|
||||
}) {
|
||||
return fromId(id);
|
||||
}
|
||||
@@ -605,7 +605,7 @@ class _$SetIdQueryParameter extends SetIdQueryParameter {
|
||||
TResult? Function()? unset,
|
||||
TResult? Function()? notAssigned,
|
||||
TResult? Function()? anyAssigned,
|
||||
TResult? Function(@HiveField(0) int? id)? fromId,
|
||||
TResult? Function(@HiveField(0) int id)? fromId,
|
||||
}) {
|
||||
return fromId?.call(id);
|
||||
}
|
||||
@@ -616,7 +616,7 @@ class _$SetIdQueryParameter extends SetIdQueryParameter {
|
||||
TResult Function()? unset,
|
||||
TResult Function()? notAssigned,
|
||||
TResult Function()? anyAssigned,
|
||||
TResult Function(@HiveField(0) int? id)? fromId,
|
||||
TResult Function(@HiveField(0) int id)? fromId,
|
||||
required TResult orElse(),
|
||||
}) {
|
||||
if (fromId != null) {
|
||||
@@ -671,7 +671,7 @@ class _$SetIdQueryParameter extends SetIdQueryParameter {
|
||||
}
|
||||
|
||||
abstract class SetIdQueryParameter extends IdQueryParameter {
|
||||
const factory SetIdQueryParameter(@HiveField(0) final int? id) =
|
||||
const factory SetIdQueryParameter(@HiveField(0) final int id) =
|
||||
_$SetIdQueryParameter;
|
||||
const SetIdQueryParameter._() : super._();
|
||||
|
||||
@@ -679,7 +679,7 @@ abstract class SetIdQueryParameter extends IdQueryParameter {
|
||||
_$SetIdQueryParameter.fromJson;
|
||||
|
||||
@HiveField(0)
|
||||
int? get id;
|
||||
int get id;
|
||||
@JsonKey(ignore: true)
|
||||
_$$SetIdQueryParameterCopyWith<_$SetIdQueryParameter> get copyWith =>
|
||||
throw _privateConstructorUsedError;
|
||||
|
||||
@@ -7,6 +7,7 @@ import 'query_type.dart';
|
||||
|
||||
part 'text_query.g.dart';
|
||||
|
||||
//TODO: Realize with freezed...
|
||||
@HiveType(typeId: PaperlessApiHiveTypeIds.textQuery)
|
||||
@JsonSerializable()
|
||||
class TextQuery extends Equatable {
|
||||
|
||||
@@ -78,6 +78,7 @@ class PaperlessDocumentsApiImpl implements PaperlessDocumentsApi {
|
||||
throw const PaperlessServerException(ErrorCode.documentUpdateFailed);
|
||||
}
|
||||
} on DioError catch (err) {
|
||||
//TODO: Handle 403 permission errors for 1.14.0
|
||||
throw err.error!;
|
||||
}
|
||||
}
|
||||
@@ -86,8 +87,7 @@ class PaperlessDocumentsApiImpl implements PaperlessDocumentsApi {
|
||||
Future<PagedSearchResult<DocumentModel>> findAll(
|
||||
DocumentFilter filter,
|
||||
) async {
|
||||
final filterParams = filter.toQueryParameters()
|
||||
..addAll({'truncate_content': "true"});
|
||||
final filterParams = filter.toQueryParameters()..addAll({'truncate_content': "true"});
|
||||
try {
|
||||
final response = await client.get(
|
||||
"/api/documents/",
|
||||
@@ -137,9 +137,8 @@ class PaperlessDocumentsApiImpl implements PaperlessDocumentsApi {
|
||||
try {
|
||||
final response = await client.get(
|
||||
getPreviewUrl(documentId),
|
||||
options: Options(
|
||||
responseType: ResponseType
|
||||
.bytes), //TODO: Check if bytes or stream is required
|
||||
options:
|
||||
Options(responseType: ResponseType.bytes), //TODO: Check if bytes or stream is required
|
||||
);
|
||||
if (response.statusCode == 200) {
|
||||
return response.data;
|
||||
@@ -219,8 +218,7 @@ class PaperlessDocumentsApiImpl implements PaperlessDocumentsApi {
|
||||
final response = await client.download(
|
||||
"/api/documents/${document.id}/download/",
|
||||
localFilePath,
|
||||
onReceiveProgress: (count, total) =>
|
||||
onProgressChanged?.call(count / total),
|
||||
onReceiveProgress: (count, total) => onProgressChanged?.call(count / total),
|
||||
queryParameters: {'original': original},
|
||||
);
|
||||
return response.data;
|
||||
@@ -232,8 +230,7 @@ class PaperlessDocumentsApiImpl implements PaperlessDocumentsApi {
|
||||
@override
|
||||
Future<DocumentMetaData> getMetaData(DocumentModel document) async {
|
||||
try {
|
||||
final response =
|
||||
await client.get("/api/documents/${document.id}/metadata/");
|
||||
final response = await client.get("/api/documents/${document.id}/metadata/");
|
||||
return compute(
|
||||
DocumentMetaData.fromJson,
|
||||
response.data as Map<String, dynamic>,
|
||||
@@ -265,11 +262,9 @@ class PaperlessDocumentsApiImpl implements PaperlessDocumentsApi {
|
||||
@override
|
||||
Future<FieldSuggestions> findSuggestions(DocumentModel document) async {
|
||||
try {
|
||||
final response =
|
||||
await client.get("/api/documents/${document.id}/suggestions/");
|
||||
final response = await client.get("/api/documents/${document.id}/suggestions/");
|
||||
if (response.statusCode == 200) {
|
||||
return FieldSuggestions.fromJson(response.data)
|
||||
.forDocumentId(document.id);
|
||||
return FieldSuggestions.fromJson(response.data).forDocumentId(document.id);
|
||||
}
|
||||
throw const PaperlessServerException(ErrorCode.suggestionsQueryError);
|
||||
} on DioError catch (err) {
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:http/http.dart';
|
||||
import 'package:paperless_api/src/models/paperless_server_exception.dart';
|
||||
import 'package:paperless_api/src/models/paperless_server_information_model.dart';
|
||||
import 'package:paperless_api/src/models/paperless_server_statistics_model.dart';
|
||||
@@ -21,20 +18,14 @@ class PaperlessServerStatsApiImpl implements PaperlessServerStatsApi {
|
||||
|
||||
@override
|
||||
Future<PaperlessServerInformationModel> getServerInformation() async {
|
||||
final response = await client.get("/api/ui_settings/");
|
||||
final response = await client.get("/api/");
|
||||
final version =
|
||||
response.headers[PaperlessServerInformationModel.versionHeader]?.first ?? 'unknown';
|
||||
final apiVersion = int.tryParse(
|
||||
response.headers[PaperlessServerInformationModel.apiVersionHeader]?.first ?? '1');
|
||||
final String username = response.data['username'];
|
||||
final String host = response.headers[PaperlessServerInformationModel.hostHeader]?.first ??
|
||||
response.headers[PaperlessServerInformationModel.hostHeader]?.first ??
|
||||
('${response.requestOptions.uri.host}:${response.requestOptions.uri.port}');
|
||||
return PaperlessServerInformationModel(
|
||||
username: username,
|
||||
version: version,
|
||||
apiVersion: apiVersion,
|
||||
host: host,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user