[client] Simplify bookmarks repository

This commit is contained in:
Abhishek Shroff
2025-05-19 09:45:52 +05:30
parent 30fbc0dcec
commit 497cfdfc33
3 changed files with 10 additions and 15 deletions
-1
View File
@@ -97,7 +97,6 @@ class PhylumAccount extends Account<PhylumAccount> {
};
await userRepository.initialize();
await bookmarkRepository.initialize();
late final void Function() l;
l = apiClient.addListener((request, errorResponse) {
@@ -10,12 +10,12 @@ import 'package:phylum/libphylum/phylum_account.dart';
import 'package:phylum/libphylum/requests/bookmarks_request.dart';
import 'package:phylum/libphylum/responses/responses.dart';
const keyLastBookmarkFetch = "lastBookmarksFetch";
const _remoteBookmarksBoxName = 'remote_bookmarks';
class BookmarkRepository extends Repository<PhylumAccount, Bookmark> {
late final PhylumAccount _account;
late final LazyBox<Bookmark?> _remoteDataBox;
int? _lastBookmarkFetch;
BookmarkRepository();
@@ -32,13 +32,6 @@ class BookmarkRepository extends Repository<PhylumAccount, Bookmark> {
return remoteData;
}
Future<void> initialize({bool clearLastFetchTimestamp = false}) async {
if (clearLastFetchTimestamp) {
await _account.persist(keyLastBookmarkFetch, null);
}
refresh();
}
Future<void> addBookmark({required Resource resource, String? name}) {
return _account.addAction(ResourceBookmarkAddAction(
resourceId: resource.id,
@@ -58,11 +51,15 @@ class BookmarkRepository extends Repository<PhylumAccount, Bookmark> {
));
}
Future<ApiResult> refresh() async {
return _account.apiClient.sendRequest(
BookmarksRequest(since: (_account.getPersisted(keyLastBookmarkFetch) as num?)?.toInt()),
(request, response) => parseJsonMapResponse(response, BookmarkListResponse.fromResponse),
);
Future<void> refresh() async {
return _account.apiClient
.sendRequest(BookmarksRequest(since: _lastBookmarkFetch),
(request, response) => parseJsonMapResponse(response, BookmarkListResponse.fromResponse))
.then((response) {
if (response is BookmarkListResponse) {
_lastBookmarkFetch = response.until;
}
});
}
@override
@@ -21,6 +21,5 @@ class BookmarkListResponse extends PhylumApiSuccessResponse {
for (final b in bookmarks) {
await account.datastore.get<Bookmark>().replaceRemoteData(b.resourceId, b);
}
await account.persist(keyLastBookmarkFetch, until);
}
}