passed file to removeDeletedCollectionFiles and corrected compare with collection.updationTime

This commit is contained in:
Abhinav-grd 2021-02-08 22:37:17 +05:30
parent bf6dc99c5c
commit e131ecd745

View file

@ -69,19 +69,17 @@ export const localFiles = async () => {
export const syncFiles = async (token: string, collections: collection[]) => { export const syncFiles = async (token: string, collections: collection[]) => {
let files = await localFiles(); let files = await localFiles();
let isUpdated = false; let isUpdated = false;
await removeDeletedCollectionFiles(collections); await removeDeletedCollectionFiles(collections, files);
const collectionsUpdateTime = await localForage.getItem<string>(
'collection-update-time'
);
for (let collection of collections) { for (let collection of collections) {
const lastSyncTime = await localForage.getItem<string>( const lastSyncTime =
`${collection.id}-time` (await localForage.getItem<number>(`${collection.id}-time`)) ?? 0;
); if (collection.updationTime === lastSyncTime) {
if (collectionsUpdateTime === lastSyncTime) {
continue; continue;
} }
isUpdated = true; isUpdated = true;
let fetchedFiles = (await getFiles(collection, null, 100, token)) ?? []; let fetchedFiles =
(await getFiles(collection, lastSyncTime.toString(), 100, token)) ??
[];
files.push(...fetchedFiles); files.push(...fetchedFiles);
var latestVersionFiles = new Map<number, file>(); var latestVersionFiles = new Map<number, file>();
files.forEach((file) => { files.forEach((file) => {
@ -105,7 +103,7 @@ export const syncFiles = async (token: string, collections: collection[]) => {
await localForage.setItem('files', files); await localForage.setItem('files', files);
await localForage.setItem( await localForage.setItem(
`${collection.id}-time`, `${collection.id}-time`,
collectionsUpdateTime collection.updationTime
); );
} }
return { files, isUpdated }; return { files, isUpdated };
@ -213,12 +211,14 @@ export const getFile = async (token: string, file: file) => {
} }
}; };
const removeDeletedCollectionFiles = async (collections: collection[]) => { const removeDeletedCollectionFiles = async (
collections: collection[],
files: file[]
) => {
const syncedCollectionIds = new Set<number>(); const syncedCollectionIds = new Set<number>();
for (let collection of collections) { for (let collection of collections) {
syncedCollectionIds.add(collection.id); syncedCollectionIds.add(collection.id);
} }
let files = await localFiles();
files = files.filter((file) => syncedCollectionIds.has(file.collectionID)); files = files.filter((file) => syncedCollectionIds.has(file.collectionID));
await localForage.setItem('files', files); await localForage.setItem('files', files);
}; };