[mob][photos] Minor refactor
This commit is contained in:
parent
415fa79271
commit
b18e5cb036
|
@ -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,
|
||||
|
|
Loading…
Reference in a new issue