Merge pull request #230 from ente-io/handle_v2

Switch to trash diff v2
This commit is contained in:
Vishnu Mohandas 2022-05-09 14:08:02 +05:30 committed by GitHub
commit 18366b8dec
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 21 deletions

View file

@ -39,10 +39,9 @@ class TrashSyncService {
_logger.fine("inserting ${diff.trashedFiles.length} items in trash");
await _trashDB.insertMultiple(diff.trashedFiles);
}
if (diff.deletedFiles.isNotEmpty) {
_logger.fine("discard ${diff.deletedFiles.length} deleted items");
await _trashDB
.delete(diff.deletedFiles.map((e) => e.uploadedFileID).toList());
if (diff.deletedUploadIDs.isNotEmpty) {
_logger.fine("discard ${diff.deletedUploadIDs.length} deleted items");
await _trashDB.delete(diff.deletedUploadIDs);
}
if (diff.restoredFiles.isNotEmpty) {
_logger.fine("discard ${diff.restoredFiles.length} restored items");
@ -68,12 +67,6 @@ class TrashSyncService {
ignoredFiles.add(file);
}
}
for (TrashFile t in diff.deletedFiles) {
final file = IgnoredFile.fromTrashItem(t);
if (file != null) {
ignoredFiles.add(file);
}
}
if (ignoredFiles.isNotEmpty) {
_logger.fine('updating ${ignoredFiles.length} ignored files ');
await IgnoredFilesService.instance.cacheAndInsert(ignoredFiles);

View file

@ -18,7 +18,7 @@ class TrashDiffFetcher {
Future<Diff> getTrashFilesDiff(int sinceTime) async {
try {
final response = await _dio.get(
Configuration.instance.getHttpEndpoint() + "/trash/diff",
Configuration.instance.getHttpEndpoint() + "/trash/v2/diff",
options: Options(
headers: {"X-Auth-Token": Configuration.instance.getToken()}),
queryParameters: {
@ -27,13 +27,17 @@ class TrashDiffFetcher {
);
int latestUpdatedAtTime = 0;
final trashedFiles = <TrashFile>[];
final deletedFiles = <TrashFile>[];
final deletedUploadIDs = <int>[];
final restoredFiles = <TrashFile>[];
if (response != null) {
final diff = response.data["diff"] as List;
final bool hasMore = response.data["hasMore"] as bool;
final startTime = DateTime.now();
for (final item in diff) {
if (item["isDeleted"]) {
deletedUploadIDs.add(item["file"]["id"]);
continue;
}
final trash = TrashFile();
trash.createdAt = item['createdAt'];
trash.updateAt = item['updatedAt'];
@ -77,10 +81,6 @@ class TrashDiffFetcher {
trash.pubMagicMetadata =
PubMagicMetadata.fromEncodedJson(trash.pubMmdEncodedJson);
}
if (item["isDeleted"]) {
deletedFiles.add(trash);
continue;
}
if (item['isRestored']) {
restoredFiles.add(trash);
continue;
@ -97,10 +97,10 @@ class TrashDiffFetcher {
startTime.microsecondsSinceEpoch))
.inMilliseconds
.toString());
return Diff(trashedFiles, restoredFiles, deletedFiles, hasMore,
return Diff(trashedFiles, restoredFiles, deletedUploadIDs, hasMore,
latestUpdatedAtTime);
} else {
return Diff(<TrashFile>[], <TrashFile>[], <TrashFile>[], false, 0);
return Diff(<TrashFile>[], <TrashFile>[], <int>[], false, 0);
}
} catch (e, s) {
_logger.severe(e, s);
@ -112,10 +112,10 @@ class TrashDiffFetcher {
class Diff {
final List<TrashFile> trashedFiles;
final List<TrashFile> restoredFiles;
final List<TrashFile> deletedFiles;
final List<int> deletedUploadIDs;
final bool hasMore;
final int lastSyncedTimeStamp;
Diff(this.trashedFiles, this.restoredFiles, this.deletedFiles, this.hasMore,
this.lastSyncedTimeStamp);
Diff(this.trashedFiles, this.restoredFiles, this.deletedUploadIDs,
this.hasMore, this.lastSyncedTimeStamp);
}