Create separate cache repository layer: - Add POfflineCacheRepository protocol for cache operations - Add OfflineCacheRepository with CoreData and Kingfisher - Add OfflineCacheSyncUseCase to coordinate sync workflow - Update PBookmarksRepository to focus on API calls only - Extend BookmarkEntityMapper with toDomain() conversion UseCase coordinates between cache, API, and settings repositories following dependency inversion principle.
18 lines
737 B
Swift
18 lines
737 B
Swift
//
|
|
// PBookmarksRepository.swift
|
|
// readeck
|
|
//
|
|
// Created by Ilyas Hallak on 14.07.25.
|
|
//
|
|
|
|
protocol PBookmarksRepository {
|
|
// Bookmark API methods
|
|
func fetchBookmarks(state: BookmarkState?, limit: Int?, offset: Int?, search: String?, type: [BookmarkType]?, tag: String?) async throws -> BookmarksPage
|
|
func fetchBookmark(id: String) async throws -> BookmarkDetail
|
|
func fetchBookmarkArticle(id: String) async throws -> String
|
|
func createBookmark(createRequest: CreateBookmarkRequest) async throws -> String
|
|
func updateBookmark(id: String, updateRequest: BookmarkUpdateRequest) async throws
|
|
func deleteBookmark(id: String) async throws
|
|
func searchBookmarks(search: String) async throws -> BookmarksPage
|
|
}
|