feat: Add more user related state to hive

This commit is contained in:
Anton Stubenbord
2023-04-23 16:48:11 +02:00
parent 1b9e4fbb81
commit 5c0ef7f853
32 changed files with 408 additions and 272 deletions

View File

@@ -0,0 +1,4 @@
class PaperlessApiHiveTypeIds {
PaperlessApiHiveTypeIds._();
static const int documentFilter = 1000;
}

View File

@@ -1,6 +1,8 @@
import 'package:collection/collection.dart';
import 'package:equatable/equatable.dart';
import 'package:hive/hive.dart';
import 'package:json_annotation/json_annotation.dart';
import 'package:paperless_api/config/hive/hive_type_ids.dart';
import 'package:paperless_api/paperless_api.dart';
import 'package:paperless_api/src/converters/tags_query_json_converter.dart';
@@ -9,6 +11,7 @@ part 'document_filter.g.dart';
@TagsQueryJsonConverter()
@DateRangeQueryJsonConverter()
@JsonSerializable(explicitToJson: true)
@HiveType(typeId: PaperlessApiHiveTypeIds.documentFilter)
class DocumentFilter extends Equatable {
static const DocumentFilter initial = DocumentFilter();
@@ -19,21 +22,35 @@ class DocumentFilter extends Equatable {
page: 1,
);
@HiveField(0)
final int pageSize;
@HiveField(1)
final int page;
@HiveField(2)
final IdQueryParameter documentType;
@HiveField(3)
final IdQueryParameter correspondent;
@HiveField(4)
final IdQueryParameter storagePath;
@HiveField(5)
final IdQueryParameter asnQuery;
@HiveField(6)
final TagsQuery tags;
@HiveField(7)
final SortField? sortField;
@HiveField(8)
final SortOrder sortOrder;
@HiveField(9)
final DateRangeQuery created;
@HiveField(10)
final DateRangeQuery added;
@HiveField(11)
final DateRangeQuery modified;
@HiveField(12)
final TextQuery query;
/// Query documents similar to the document with this id.
@HiveField(13)
final int? moreLike;
const DocumentFilter({

View File

@@ -152,10 +152,10 @@ class PaperlessDocumentsApiImpl implements PaperlessDocumentsApi {
@override
Future<int> findNextAsn() async {
const DocumentFilter asnQueryFilter = DocumentFilter(
final DocumentFilter asnQueryFilter = DocumentFilter(
sortField: SortField.archiveSerialNumber,
sortOrder: SortOrder.descending,
asnQuery: IdQueryParameter.anyAssigned(),
asnQuery: const IdQueryParameter.anyAssigned(),
page: 1,
pageSize: 1,
);

View File

@@ -21,6 +21,7 @@ dependencies:
collection: ^1.17.0
jiffy: ^5.0.0
freezed_annotation: ^2.2.0
hive: ^2.2.3
dev_dependencies:
flutter_test:
@@ -29,6 +30,7 @@ dev_dependencies:
json_serializable: ^6.5.4
build_runner: ^2.3.2
freezed: ^2.3.2
hive_generator: ^2.0.0
# For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec

View File

@@ -210,16 +210,16 @@ void main() {
test('Values are correctly parsed if unset.', () {
expect(
SavedView.fromDocumentFilter(
const DocumentFilter(
correspondent: IdQueryParameter.unset(),
documentType: IdQueryParameter.unset(),
storagePath: IdQueryParameter.unset(),
tags: IdsTagsQuery(),
DocumentFilter(
correspondent: const IdQueryParameter.unset(),
documentType: const IdQueryParameter.unset(),
storagePath: const IdQueryParameter.unset(),
tags: const IdsTagsQuery(),
sortField: SortField.created,
sortOrder: SortOrder.descending,
added: UnsetDateRangeQuery(),
created: UnsetDateRangeQuery(),
query: TextQuery(),
added: const UnsetDateRangeQuery(),
created: const UnsetDateRangeQuery(),
query: const TextQuery(),
),
name: "test_name",
showInSidebar: false,
@@ -241,11 +241,11 @@ void main() {
test('Values are correctly parsed if not assigned.', () {
expect(
SavedView.fromDocumentFilter(
const DocumentFilter(
correspondent: IdQueryParameter.notAssigned(),
documentType: IdQueryParameter.notAssigned(),
storagePath: IdQueryParameter.notAssigned(),
tags: OnlyNotAssignedTagsQuery(),
DocumentFilter(
correspondent: const IdQueryParameter.notAssigned(),
documentType: const IdQueryParameter.notAssigned(),
storagePath: const IdQueryParameter.notAssigned(),
tags: const OnlyNotAssignedTagsQuery(),
sortField: SortField.created,
sortOrder: SortOrder.ascending,
),