Externalized API and models as own package

This commit is contained in:
Anton Stubenbord
2022-12-02 01:48:13 +01:00
parent 60d1a2e62a
commit ec7707e4a4
143 changed files with 1496 additions and 1339 deletions

View File

@@ -1,5 +1,5 @@
import 'package:paperless_api/paperless_api.dart';
import 'package:paperless_mobile/features/labels/bloc/label_cubit.dart';
import 'package:paperless_mobile/features/labels/correspondent/model/correspondent.model.dart';
import 'package:injectable/injectable.dart';
@singleton
@@ -8,18 +8,17 @@ class CorrespondentCubit extends LabelCubit<Correspondent> {
@override
Future<void> initialize() async {
return labelRepository.getCorrespondents().then(loadFrom);
return labelsApi.getCorrespondents().then(loadFrom);
}
@override
Future<Correspondent> save(Correspondent item) =>
labelRepository.saveCorrespondent(item);
labelsApi.saveCorrespondent(item);
@override
Future<Correspondent> update(Correspondent item) =>
labelRepository.updateCorrespondent(item);
labelsApi.updateCorrespondent(item);
@override
Future<int> delete(Correspondent item) =>
labelRepository.deleteCorrespondent(item);
Future<int> delete(Correspondent item) => labelsApi.deleteCorrespondent(item);
}

View File

@@ -1,65 +0,0 @@
import 'package:paperless_mobile/core/type/types.dart';
import 'package:paperless_mobile/extensions/dart_extensions.dart';
import 'package:paperless_mobile/features/labels/document_type/model/matching_algorithm.dart';
import 'package:paperless_mobile/features/labels/model/label.model.dart';
class Correspondent extends Label {
static const lastCorrespondenceKey = 'last_correspondence';
late DateTime? lastCorrespondence;
Correspondent({
required super.id,
required super.name,
super.slug,
super.match,
super.matchingAlgorithm,
super.isInsensitive,
super.documentCount,
this.lastCorrespondence,
});
Correspondent.fromJson(JSON json)
: lastCorrespondence =
DateTime.tryParse(json[lastCorrespondenceKey] ?? ''),
super.fromJson(json);
@override
String toString() {
return name;
}
@override
void addSpecificFieldsToJson(JSON json) {
json.tryPutIfAbsent(
lastCorrespondenceKey,
() => lastCorrespondence?.toIso8601String(),
);
}
@override
Correspondent copyWith({
int? id,
String? name,
String? slug,
String? match,
MatchingAlgorithm? matchingAlgorithm,
bool? isInsensitive,
int? documentCount,
DateTime? lastCorrespondence,
}) {
return Correspondent(
id: id ?? this.id,
name: name ?? this.name,
documentCount: documentCount ?? documentCount,
isInsensitive: isInsensitive ?? isInsensitive,
lastCorrespondence: lastCorrespondence ?? this.lastCorrespondence,
match: match ?? this.match,
matchingAlgorithm: matchingAlgorithm ?? this.matchingAlgorithm,
slug: slug ?? this.slug,
);
}
@override
String get queryEndpoint => 'correspondents';
}

View File

@@ -1,7 +1,7 @@
import 'package:flutter/widgets.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:paperless_api/paperless_api.dart';
import 'package:paperless_mobile/features/labels/correspondent/bloc/correspondents_cubit.dart';
import 'package:paperless_mobile/features/labels/correspondent/model/correspondent.model.dart';
import 'package:paperless_mobile/features/labels/view/pages/add_label_page.dart';
import 'package:paperless_mobile/generated/l10n.dart';

View File

@@ -1,11 +1,8 @@
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:paperless_mobile/core/logic/error_code_localization_mapper.dart';
import 'package:paperless_mobile/core/model/error_message.dart';
import 'package:paperless_api/paperless_api.dart';
import 'package:paperless_mobile/features/documents/bloc/documents_cubit.dart';
import 'package:paperless_mobile/features/documents/model/query_parameters/correspondent_query.dart';
import 'package:paperless_mobile/features/labels/correspondent/bloc/correspondents_cubit.dart';
import 'package:paperless_mobile/features/labels/correspondent/model/correspondent.model.dart';
import 'package:paperless_mobile/features/labels/view/pages/edit_label_page.dart';
import 'package:paperless_mobile/util.dart';
@@ -38,7 +35,7 @@ class EditCorrespondentPage extends StatelessWidget {
);
}
Navigator.pop(context);
} on ErrorMessage catch (error, stackTrace) {
} on PaperlessServerException catch (error, stackTrace) {
showErrorMessage(context, error, stackTrace);
}
}

View File

@@ -1,12 +1,9 @@
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:paperless_mobile/core/model/error_message.dart';
import 'package:paperless_mobile/di_initializer.dart';
import 'package:paperless_api/paperless_api.dart';
import 'package:paperless_mobile/features/documents/bloc/documents_cubit.dart';
import 'package:paperless_mobile/features/documents/model/query_parameters/correspondent_query.dart';
import 'package:paperless_mobile/features/labels/correspondent/bloc/correspondents_cubit.dart';
import 'package:paperless_mobile/features/labels/correspondent/model/correspondent.model.dart';
import 'package:paperless_mobile/features/labels/model/label_state.dart';
import 'package:paperless_mobile/features/labels/bloc/label_state.dart';
import 'package:paperless_mobile/util.dart';
class CorrespondentWidget extends StatelessWidget {
@@ -60,7 +57,7 @@ class CorrespondentWidget extends StatelessWidget {
);
}
afterSelected?.call();
} on ErrorMessage catch (error, stackTrace) {
} on PaperlessServerException catch (error, stackTrace) {
showErrorMessage(context, error, stackTrace);
}
}