mirror of
https://gitlab.com/nkming2/nc-photos.git
synced 2025-02-02 06:46:22 +01:00
Improve error handling and logging in appdb
This commit is contained in:
parent
4a07fd3a8b
commit
0993324488
2 changed files with 51 additions and 16 deletions
|
@ -511,8 +511,13 @@ class AlbumCachedDataSource implements AlbumDataSource {
|
||||||
.map((pair) => pair.item2)
|
.map((pair) => pair.item2)
|
||||||
.toList();
|
.toList();
|
||||||
for (final k in danglingKeys) {
|
for (final k in danglingKeys) {
|
||||||
_log.fine("[cleanUp] Removing DB entry: $k");
|
_log.fine("[cleanUp] Removing albumStore entry: $k");
|
||||||
|
try {
|
||||||
await store.delete(k);
|
await store.delete(k);
|
||||||
|
} catch (e, stackTrace) {
|
||||||
|
_log.shout(
|
||||||
|
"[cleanUp] Failed removing albumStore entry", e, stackTrace);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -579,8 +584,13 @@ Future<void> _cacheAlbum(
|
||||||
.map((cursor) => cursor.primaryKey)
|
.map((cursor) => cursor.primaryKey)
|
||||||
.toList();
|
.toList();
|
||||||
for (final k in rmKeys) {
|
for (final k in rmKeys) {
|
||||||
_log.fine("[_cacheAlbum] Removing DB entry: $k");
|
_log.fine("[_cacheAlbum] Removing albumStore entry: $k");
|
||||||
|
try {
|
||||||
await store.delete(k);
|
await store.delete(k);
|
||||||
|
} catch (e, stackTrace) {
|
||||||
|
_log.shout(
|
||||||
|
"[_cacheAlbum] Failed removing albumStore entry", e, stackTrace);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -783,7 +783,12 @@ Future<void> _removeFileFromAppDb(
|
||||||
required ObjectStore fileStore,
|
required ObjectStore fileStore,
|
||||||
}) async {
|
}) async {
|
||||||
assert(file.isCollection != true);
|
assert(file.isCollection != true);
|
||||||
|
try {
|
||||||
await fileStore.delete(AppDbFile2Entry.toPrimaryKeyForFile(account, file));
|
await fileStore.delete(AppDbFile2Entry.toPrimaryKeyForFile(account, file));
|
||||||
|
} catch (e, stackTrace) {
|
||||||
|
_log.shout("[_removeFileFromAppDb] Failed removing fileStore entry", e,
|
||||||
|
stackTrace);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Remove a dir and all files inside from the database
|
/// Remove a dir and all files inside from the database
|
||||||
|
@ -795,10 +800,15 @@ Future<void> _removeDirFromAppDb(
|
||||||
}) async {
|
}) async {
|
||||||
assert(dir.isCollection == true);
|
assert(dir.isCollection == true);
|
||||||
// delete the dir itself
|
// delete the dir itself
|
||||||
|
try {
|
||||||
await AppDbDirEntry.toPrimaryKeyForDir(account, dir).runFuture((key) async {
|
await AppDbDirEntry.toPrimaryKeyForDir(account, dir).runFuture((key) async {
|
||||||
_log.fine("[_removeDirFromAppDb] Removing dirStore entry: $key");
|
_log.fine("[_removeDirFromAppDb] Removing dirStore entry: $key");
|
||||||
await dirStore.delete(key);
|
await dirStore.delete(key);
|
||||||
});
|
});
|
||||||
|
} catch (e, stackTrace) {
|
||||||
|
_log.shout(
|
||||||
|
"[_removeDirFromAppDb] Failed removing dirStore entry", e, stackTrace);
|
||||||
|
}
|
||||||
// then its children
|
// then its children
|
||||||
final childrenRange = KeyRange.bound(
|
final childrenRange = KeyRange.bound(
|
||||||
AppDbDirEntry.toPrimaryLowerKeyForSubDirs(account, dir),
|
AppDbDirEntry.toPrimaryLowerKeyForSubDirs(account, dir),
|
||||||
|
@ -806,16 +816,26 @@ Future<void> _removeDirFromAppDb(
|
||||||
);
|
);
|
||||||
for (final key in await dirStore.getAllKeys(childrenRange)) {
|
for (final key in await dirStore.getAllKeys(childrenRange)) {
|
||||||
_log.fine("[_removeDirFromAppDb] Removing dirStore entry: $key");
|
_log.fine("[_removeDirFromAppDb] Removing dirStore entry: $key");
|
||||||
|
try {
|
||||||
await dirStore.delete(key);
|
await dirStore.delete(key);
|
||||||
|
} catch (e, stackTrace) {
|
||||||
|
_log.shout("[_removeDirFromAppDb] Failed removing dirStore entry", e,
|
||||||
|
stackTrace);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// delete files from fileStore
|
// delete files from fileStore
|
||||||
// first the dir
|
// first the dir
|
||||||
|
try {
|
||||||
await AppDbFile2Entry.toPrimaryKeyForFile(account, dir)
|
await AppDbFile2Entry.toPrimaryKeyForFile(account, dir)
|
||||||
.runFuture((key) async {
|
.runFuture((key) async {
|
||||||
_log.fine("[_removeDirFromAppDb] Removing fileStore entry: $key");
|
_log.fine("[_removeDirFromAppDb] Removing fileStore entry: $key");
|
||||||
await fileStore.delete(key);
|
await fileStore.delete(key);
|
||||||
});
|
});
|
||||||
|
} catch (e, stackTrace) {
|
||||||
|
_log.shout(
|
||||||
|
"[_removeDirFromAppDb] Failed removing fileStore entry", e, stackTrace);
|
||||||
|
}
|
||||||
// then files under this dir and sub-dirs
|
// then files under this dir and sub-dirs
|
||||||
final range = KeyRange.bound(
|
final range = KeyRange.bound(
|
||||||
AppDbFile2Entry.toStrippedPathIndexLowerKeyForDir(account, dir),
|
AppDbFile2Entry.toStrippedPathIndexLowerKeyForDir(account, dir),
|
||||||
|
@ -825,7 +845,12 @@ Future<void> _removeDirFromAppDb(
|
||||||
fileStore.index(AppDbFile2Entry.strippedPathIndexName);
|
fileStore.index(AppDbFile2Entry.strippedPathIndexName);
|
||||||
for (final key in await strippedPathIndex.getAllKeys(range)) {
|
for (final key in await strippedPathIndex.getAllKeys(range)) {
|
||||||
_log.fine("[_removeDirFromAppDb] Removing fileStore entry: $key");
|
_log.fine("[_removeDirFromAppDb] Removing fileStore entry: $key");
|
||||||
|
try {
|
||||||
await fileStore.delete(key);
|
await fileStore.delete(key);
|
||||||
|
} catch (e, stackTrace) {
|
||||||
|
_log.shout("[_removeDirFromAppDb] Failed removing fileStore entry", e,
|
||||||
|
stackTrace);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue