From 497cfdfc338710bc203a646a1fd64f2c135e33d2 Mon Sep 17 00:00:00 2001 From: Abhishek Shroff Date: Mon, 19 May 2025 09:45:52 +0530 Subject: [PATCH] [client] Simplify bookmarks repository --- client/lib/libphylum/phylum_account.dart | 1 - .../repositories/bookmark_repository.dart | 23 ++++++++----------- .../responses/bookmark_list_response.dart | 1 - 3 files changed, 10 insertions(+), 15 deletions(-) diff --git a/client/lib/libphylum/phylum_account.dart b/client/lib/libphylum/phylum_account.dart index 8cfaff60..3e14716c 100644 --- a/client/lib/libphylum/phylum_account.dart +++ b/client/lib/libphylum/phylum_account.dart @@ -97,7 +97,6 @@ class PhylumAccount extends Account { }; await userRepository.initialize(); - await bookmarkRepository.initialize(); late final void Function() l; l = apiClient.addListener((request, errorResponse) { diff --git a/client/lib/libphylum/repositories/bookmark_repository.dart b/client/lib/libphylum/repositories/bookmark_repository.dart index 777348f1..0ed16a3d 100644 --- a/client/lib/libphylum/repositories/bookmark_repository.dart +++ b/client/lib/libphylum/repositories/bookmark_repository.dart @@ -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 { late final PhylumAccount _account; late final LazyBox _remoteDataBox; + int? _lastBookmarkFetch; BookmarkRepository(); @@ -32,13 +32,6 @@ class BookmarkRepository extends Repository { return remoteData; } - Future initialize({bool clearLastFetchTimestamp = false}) async { - if (clearLastFetchTimestamp) { - await _account.persist(keyLastBookmarkFetch, null); - } - refresh(); - } - Future addBookmark({required Resource resource, String? name}) { return _account.addAction(ResourceBookmarkAddAction( resourceId: resource.id, @@ -58,11 +51,15 @@ class BookmarkRepository extends Repository { )); } - Future refresh() async { - return _account.apiClient.sendRequest( - BookmarksRequest(since: (_account.getPersisted(keyLastBookmarkFetch) as num?)?.toInt()), - (request, response) => parseJsonMapResponse(response, BookmarkListResponse.fromResponse), - ); + Future 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 diff --git a/client/lib/libphylum/responses/bookmark_list_response.dart b/client/lib/libphylum/responses/bookmark_list_response.dart index 5a5b2ae6..a12b9957 100644 --- a/client/lib/libphylum/responses/bookmark_list_response.dart +++ b/client/lib/libphylum/responses/bookmark_list_response.dart @@ -21,6 +21,5 @@ class BookmarkListResponse extends PhylumApiSuccessResponse { for (final b in bookmarks) { await account.datastore.get().replaceRemoteData(b.resourceId, b); } - await account.persist(keyLastBookmarkFetch, until); } }