more corrections

This commit is contained in:
Abhinav-grd 2021-02-09 10:37:46 +05:30
parent 6ac4e7a269
commit e8ae13221e
2 changed files with 18 additions and 14 deletions

View file

@ -165,7 +165,7 @@ export const getCollectionLatestFile = (
const collectionMap = new Map<number, collection>(); const collectionMap = new Map<number, collection>();
collections.forEach((collection) => collections.forEach((collection) =>
collectionMap.set(Number(collection.id), collection) collectionMap.set(collection.id, collection)
); );
files.forEach((file) => { files.forEach((file) => {
if (!latestFile.has(file.collectionID)) { if (!latestFile.has(file.collectionID)) {
@ -188,7 +188,7 @@ export const getFavItemIds = async (files: file[]): Promise<Set<number>> => {
return new Set( return new Set(
files files
.filter((file) => file.collectionID === Number(favCollection.id)) .filter((file) => file.collectionID === favCollection.id)
.map((file): number => file.id) .map((file): number => file.id)
); );
}; };
@ -275,7 +275,9 @@ export const addToFavorites = async (file: file) => {
}; };
export const removeFromFavorites = async (file: file) => { export const removeFromFavorites = async (file: file) => {
let favCollection: collection = await localForage.getItem<collection>(FAV_COLLECTION); let favCollection: collection = await localForage.getItem<collection>(
FAV_COLLECTION
);
await removeFromCollection(favCollection, [file]); await removeFromCollection(favCollection, [file]);
}; };
@ -287,7 +289,7 @@ const addtoCollection = async (collection: collection, files: file[]) => {
params['collectionID'] = collection.id; params['collectionID'] = collection.id;
await Promise.all( await Promise.all(
files.map(async (file) => { files.map(async (file) => {
file.collectionID = Number(collection.id); file.collectionID = collection.id;
const newEncryptedKey: keyEncryptionResult = await worker.encryptToB64( const newEncryptedKey: keyEncryptionResult = await worker.encryptToB64(
file.key, file.key,
collection.key collection.key
@ -341,10 +343,13 @@ const removeFromCollection = async (collection: collection, files: file[]) => {
const setLocalFavoriteCollection = async (collections: collection[]) => { const setLocalFavoriteCollection = async (collections: collection[]) => {
const localFavCollection = await localForage.getItem(FAV_COLLECTION); const localFavCollection = await localForage.getItem(FAV_COLLECTION);
if (localFavCollection) return; if (localFavCollection) {
return;
}
const favCollection = collections.filter( const favCollection = collections.filter(
(collection) => collection.type == CollectionType.favorites (collection) => collection.type == CollectionType.favorites
); );
if (favCollection.length > 0) if (favCollection.length > 0) {
await localForage.setItem(FAV_COLLECTION, favCollection[0]); await localForage.setItem(FAV_COLLECTION, favCollection[0]);
}
}; };

View file

@ -69,7 +69,7 @@ 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, files); files = await removeDeletedCollectionFiles(collections, files);
for (let collection of collections) { for (let collection of collections) {
const lastSyncTime = const lastSyncTime =
(await localForage.getItem<number>(`${collection.id}-time`)) ?? 0; (await localForage.getItem<number>(`${collection.id}-time`)) ?? 0;
@ -78,8 +78,7 @@ export const syncFiles = async (token: string, collections: collection[]) => {
} }
isUpdated = true; isUpdated = true;
let fetchedFiles = let fetchedFiles =
(await getFiles(collection, lastSyncTime.toString(), 100, token)) ?? (await getFiles(collection, lastSyncTime, 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) => {
@ -111,7 +110,7 @@ export const syncFiles = async (token: string, collections: collection[]) => {
export const getFiles = async ( export const getFiles = async (
collection: collection, collection: collection,
sinceTime: string, sinceTime: number,
limit: number, limit: number,
token: string token: string
): Promise<file[]> => { ): Promise<file[]> => {
@ -120,15 +119,15 @@ export const getFiles = async (
let promises: Promise<file>[] = []; let promises: Promise<file>[] = [];
let time = let time =
sinceTime || sinceTime ||
(await localForage.getItem<string>(`${collection.id}-time`)) || (await localForage.getItem<number>(`${collection.id}-time`)) ||
'0'; 0;
let resp; let resp;
do { do {
resp = await HTTPService.get( resp = await HTTPService.get(
`${ENDPOINT}/collections/diff`, `${ENDPOINT}/collections/diff`,
{ {
collectionID: collection.id.toString(), collectionID: collection.id.toString(),
sinceTime: time, sinceTime: time.toString(),
limit: limit.toString(), limit: limit.toString(),
}, },
{ {
@ -220,5 +219,5 @@ const removeDeletedCollectionFiles = async (
syncedCollectionIds.add(collection.id); syncedCollectionIds.add(collection.id);
} }
files = files.filter((file) => syncedCollectionIds.has(file.collectionID)); files = files.filter((file) => syncedCollectionIds.has(file.collectionID));
await localForage.setItem('files', files); return files;
}; };