[mob][photos] Minor refactor

This commit is contained in:
Neeraj Gupta 2024-04-18 15:11:15 +05:30
parent 415fa79271
commit b18e5cb036

View file

@ -1149,10 +1149,7 @@ class CollectionsService {
}
Future<void> addToCollection(int collectionID, List<EnteFile> files) async {
final containsUploadedFile = files.firstWhereOrNull(
(element) => element.uploadedFileID != null,
) !=
null;
final containsUploadedFile = files.any((e) => e.isUploaded);
if (containsUploadedFile) {
final existingFileIDsInCollection =
await FilesDB.instance.getUploadedFileIDs(collectionID);
@ -1263,6 +1260,63 @@ class CollectionsService {
}
}
Future<void> copyToCollection(int collectionID, List<EnteFile> files) async {
final containsUploadedFile = files.firstWhereOrNull(
(element) => element.uploadedFileID != null,
) !=
null;
if (containsUploadedFile) {
final existingFileIDsInCollection =
await FilesDB.instance.getUploadedFileIDs(collectionID);
files.removeWhere(
(element) =>
element.uploadedFileID != null &&
existingFileIDsInCollection.contains(element.uploadedFileID),
);
}
if (files.isEmpty || !containsUploadedFile) {
_logger.info("nothing to add to the collection");
return;
}
final params = <String, dynamic>{};
params["collectionID"] = collectionID;
final batchedFiles = files.chunks(batchSize);
for (final batch in batchedFiles) {
params["files"] = [];
for (final file in batch) {
final fileKey = getFileKey(file);
file.generatedID =
null; // So that a new entry is created in the FilesDB
file.collectionID = collectionID;
final encryptedKeyData =
CryptoUtil.encryptSync(fileKey, getCollectionKey(collectionID));
file.encryptedKey =
CryptoUtil.bin2base64(encryptedKeyData.encryptedData!);
file.keyDecryptionNonce =
CryptoUtil.bin2base64(encryptedKeyData.nonce!);
params["files"].add(
CollectionFileItem(
file.uploadedFileID!,
file.encryptedKey!,
file.keyDecryptionNonce!,
).toMap(),
);
}
try {
await _enteDio.post(
"/collections/add-files",
data: params,
);
await _filesDB.insertMultiple(batch);
Bus.instance.fire(CollectionUpdatedEvent(collectionID, batch, "addTo"));
} catch (e) {
rethrow;
}
}
}
Future<EnteFile> linkLocalFileToExistingUploadedFileInAnotherCollection(
int destCollectionID, {
required EnteFile localFileToUpload,