Skip to content

Commit eb5e5a5

Browse files
committed
Enable document editing
1 parent a305fef commit eb5e5a5

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

lib/api.dart

+10-3
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,8 @@ class API {
214214
}
215215

216216
List<APICapability> getCapabilities() {
217+
if (this.apiFlavour == "paperless-ng")
218+
return [APICapability.UPDATE_DOCUMENTS, APICapability.TAG_COLOR];
217219
return [];
218220
}
219221

@@ -281,7 +283,11 @@ class API {
281283
{String ordering = "-created", String? search}) async {
282284
var json =
283285
await getAPIResource("documents", ordering: ordering, search: search);
284-
return ResponseList<Document>.fromJson(json!);
286+
var docs = ResponseList<Document>.fromJson(json!);
287+
if (docs.runtimeType != OgDocument) {
288+
this.apiFlavour = "paperless-ng";
289+
}
290+
return docs;
285291
}
286292

287293
Future<ResponseList<Correspondent>> getCorrespondents() async {
@@ -342,7 +348,7 @@ class API {
342348
}
343349

344350
Future<void> deleteResource(String type, int? id) async {
345-
await dio.delete(getFullURL("/api/$type/$id"));
351+
await dio.delete(getFullURL("/api/${type}s/$id/"));
346352
}
347353

348354
Future<void> deleteDocument(Document doc) async {
@@ -359,7 +365,8 @@ class API {
359365

360366
Future<void> updateResource(
361367
String type, int? id, Map<String, dynamic> newValue) async {
362-
await dio.put(getFullURL("/api/$type/$id"), data: jsonEncode(newValue));
368+
await dio.patch(getFullURL("/api/${type}s/$id/"),
369+
data: jsonEncode(newValue));
363370
}
364371

365372
Future<void> updateDocument(int? id, Map<String, dynamic> newDocument) async {

lib/routes/document_detail_route.dart

+3-2
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,9 @@ class _DocumentDetailRouteState extends State<DocumentDetailRoute> {
3939

4040
@override
4141
Widget build(BuildContext context) {
42-
bool editable = true;
43-
// API.instance.getCapabilities().contains(APICapability.UPDATE_DOCUMENTS);
42+
bool editable = API.instance!
43+
.getCapabilities()
44+
.contains(APICapability.UPDATE_DOCUMENTS);
4445
return Scaffold(
4546
appBar: AppBar(
4647
actions: [

0 commit comments

Comments
 (0)