define params inside each batch

This commit is contained in:
ashilkn 2022-11-18 12:52:34 +05:30
parent 3fa1875392
commit 253614143a
3 changed files with 7 additions and 18 deletions

View file

@ -720,9 +720,9 @@ class CollectionsService {
final params = <String, dynamic>{};
params["collectionID"] = collectionID;
params["files"] = [];
final batchedFiles = files.chunks(batchSize);
for (final batch in batchedFiles) {
params["files"] = [];
for (final file in batch) {
final key = decryptFileKey(file);
file.generatedID =
@ -750,8 +750,6 @@ class CollectionsService {
Bus.instance.fire(CollectionUpdatedEvent(collectionID, batch, "addTo"));
} catch (e) {
rethrow;
} finally {
params["files"] = [];
}
}
}
@ -801,10 +799,10 @@ class CollectionsService {
Future<void> restore(int toCollectionID, List<File> files) async {
final params = <String, dynamic>{};
params["collectionID"] = toCollectionID;
params["files"] = [];
final toCollectionKey = getCollectionKey(toCollectionID);
final batchedFiles = files.chunks(batchSize);
for (final batch in batchedFiles) {
params["files"] = [];
for (final file in batch) {
final key = decryptFileKey(file);
file.generatedID =
@ -849,8 +847,6 @@ class CollectionsService {
} catch (e, s) {
_logger.severe("failed to restore files", e, s);
rethrow;
} finally {
params["files"] = [];
}
}
}
@ -869,9 +865,9 @@ class CollectionsService {
final params = <String, dynamic>{};
params["toCollectionID"] = toCollectionID;
params["fromCollectionID"] = fromCollectionID;
params["files"] = [];
final batchedFiles = files.chunks(batchSize);
for (final batch in batchedFiles) {
params["files"] = [];
for (final file in batch) {
final fileKey = decryptFileKey(file);
file.generatedID =
@ -893,7 +889,6 @@ class CollectionsService {
"/collections/move-files",
data: params,
);
params["files"] = [];
}
// remove files from old collection
@ -944,10 +939,10 @@ class CollectionsService {
Future<void> removeFromCollection(int collectionID, List<File> files) async {
final params = <String, dynamic>{};
params["fileIDs"] = <int>[];
params["collectionID"] = collectionID;
final batchedFiles = files.chunks(batchSize);
for (final batch in batchedFiles) {
params["fileIDs"] = <int>[];
for (final file in batch) {
params["fileIDs"].add(file.uploadedFileID);
}
@ -957,7 +952,6 @@ class CollectionsService {
);
await _filesDB.removeFromCollection(collectionID, params["fileIDs"]);
params["fileIDs"] = <int>[];
Bus.instance
.fire(CollectionUpdatedEvent(collectionID, batch, "removeFrom"));
Bus.instance.fire(LocalPhotosUpdatedEvent(batch, source: "removeFrom"));

View file

@ -134,11 +134,11 @@ class FileMagicService {
Map<String, dynamic> newMetadataUpdate,
) async {
final params = <String, dynamic>{};
params['metadataList'] = [];
final int ownerID = Configuration.instance.getUserID();
final batchedFiles = files.chunks(batchSize);
try {
for (final batch in batchedFiles) {
params['metadataList'] = [];
for (final file in batch) {
if (file.uploadedFileID == null) {
throw AssertionError(
@ -181,7 +181,6 @@ class FileMagicService {
await _enteDio.put("/files/magic-metadata", data: params);
await _filesDB.insertMultiple(files);
params["metadataList"] = [];
}
// update the state of the selected file. Same file in other collection

View file

@ -25,7 +25,6 @@ class TrashSyncService {
final _diffFetcher = TrashDiffFetcher();
final _trashDB = TrashDB.instance;
static const kLastTrashSyncTime = "last_trash_sync_time";
static const kTrashBatchSize = 999;
SharedPreferences _prefs;
TrashSyncService._privateConstructor();
@ -116,14 +115,13 @@ class TrashSyncService {
}
}
final requestData = <String, dynamic>{};
requestData["items"] = [];
final batchedItems = uniqueItems.chunks(batchSize);
for (final batch in batchedItems) {
requestData["items"] = [];
for (final item in batch) {
requestData["items"].add(item.toJson());
}
await _trashFiles(requestData);
requestData["items"] = [];
}
}
@ -139,9 +137,9 @@ class TrashSyncService {
Future<void> deleteFromTrash(List<File> files) async {
final params = <String, dynamic>{};
final uniqueFileIds = files.map((e) => e.uploadedFileID).toSet().toList();
params["fileIDs"] = [];
final batchedFileIDs = uniqueFileIds.chunks(batchSize);
for (final batch in batchedFileIDs) {
params["fileIDs"] = [];
for (final fileID in batch) {
params["fileIDs"].add(fileID);
}
@ -155,8 +153,6 @@ class TrashSyncService {
} catch (e, s) {
_logger.severe("failed to delete from trash", e, s);
rethrow;
} finally {
params["fileIDs"] = <int>[];
}
}
// no need to await on syncing trash from remote