mirror of
https://codeberg.org/shroff/phylum.git
synced 2026-01-06 03:31:02 -06:00
[client] Move server data tracking to ResourceAction
This commit is contained in:
@@ -1,16 +1,39 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:meta/meta.dart';
|
||||
import 'package:offtheline/offtheline.dart';
|
||||
import 'package:phylum/libphylum/phylum_api_types.dart';
|
||||
|
||||
abstract class ResourceAction extends PhylumAction {
|
||||
@visibleForOverriding
|
||||
bool get trackServerData => false;
|
||||
String _resourceId;
|
||||
String get resourceId => _resourceId;
|
||||
|
||||
ResourceAction({required String resourceId}) : _resourceId = resourceId;
|
||||
|
||||
@override
|
||||
@mustCallSuper
|
||||
Future<void> initialize() {
|
||||
if (trackServerData) {
|
||||
return account.resourceRepository.trackServerData(resourceId);
|
||||
}
|
||||
return Future.value(null);
|
||||
}
|
||||
|
||||
@override
|
||||
@mustCallSuper
|
||||
Future<void> dispose() {
|
||||
if (trackServerData) {
|
||||
return account.resourceRepository.stopTrackingServerData(resourceId);
|
||||
}
|
||||
return Future.value(null);
|
||||
}
|
||||
|
||||
void updateResourceId(String resourceId) {
|
||||
account.resourceRepository.stopTrackingServerData(_resourceId);
|
||||
_resourceId = resourceId;
|
||||
account.resourceRepository.trackServerData(_resourceId);
|
||||
}
|
||||
|
||||
@override
|
||||
|
||||
@@ -18,6 +18,9 @@ class ResourceMoveAction extends ResourceBindAction with JsonApiAction {
|
||||
@override
|
||||
String get endpoint => '/api/v1/fs/mv/$resourceId';
|
||||
|
||||
@override
|
||||
bool get trackServerData => true;
|
||||
|
||||
final DateTime modified;
|
||||
final String description;
|
||||
|
||||
@@ -78,16 +81,6 @@ class ResourceMoveAction extends ResourceBindAction with JsonApiAction {
|
||||
};
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> initialize() {
|
||||
return account.resourceRepository.trackServerData(resourceId);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> dispose() {
|
||||
return account.resourceRepository.stopTrackingServerData(resourceId);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> applyOptimisticUpdate() {
|
||||
return account.resourceRepository.updateResource(
|
||||
|
||||
@@ -20,6 +20,9 @@ class ResourceShareAction extends ResourceAction with JsonApiAction {
|
||||
@override
|
||||
String get endpoint => '/api/v1/fs/share/$resourceId';
|
||||
|
||||
@override
|
||||
bool get trackServerData => true;
|
||||
|
||||
final String username;
|
||||
final int permission;
|
||||
final DateTime modified;
|
||||
@@ -78,16 +81,6 @@ class ResourceShareAction extends ResourceAction with JsonApiAction {
|
||||
};
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> initialize() {
|
||||
return account.resourceRepository.trackServerData(resourceId);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> dispose() {
|
||||
return account.resourceRepository.stopTrackingServerData(resourceId);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> applyOptimisticUpdate() async {
|
||||
final resource = await account.resourceRepository.getResource(resourceId);
|
||||
|
||||
@@ -558,7 +558,7 @@ packages:
|
||||
source: hosted
|
||||
version: "0.11.1"
|
||||
meta:
|
||||
dependency: transitive
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: meta
|
||||
sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7
|
||||
|
||||
@@ -34,6 +34,7 @@ dependencies:
|
||||
super_clipboard:
|
||||
super_drag_and_drop:
|
||||
uri:
|
||||
meta: ^1.15.0
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
|
||||
Reference in New Issue
Block a user