@@ -10,26 +10,30 @@ import UIKit
1010import Domain
1111
1212final class WebPageRepositoryImpl: WebPageRepository {
13- private let webPageService : WebPageService
13+ private let authService : AuthService
1414 private let metadataService : WebPageMetadataService
15+ private let webPageService : WebPageService
1516
1617 init (
17- webPageService: WebPageService ,
18- metadataService: WebPageMetadataService
18+ authService: AuthService ,
19+ metadataService: WebPageMetadataService ,
20+ webPageService: WebPageService
1921 ) {
20- self . webPageService = webPageService
22+ self . authService = authService
2123 self . metadataService = metadataService
24+ self . webPageService = webPageService
2225 }
2326
2427 func fetch( _ query: String ) async throws -> [ WebPage ] {
2528 do {
29+ let accountID = authService. uid
2630 let responses = try await webPageService. fetchWebPages ( query)
2731 var pages : [ WebPage ] = [ ]
2832 pages. reserveCapacity ( responses. count)
2933
3034 for response in responses {
31- if await needsImageRestore ( response) {
32- if let restored = try ? await restoreWebPage ( response) {
35+ if await needsImageRestore ( response, accountID : accountID ) {
36+ if let restored = try ? await restoreWebPage ( response, accountID : accountID ) {
3337 pages. append ( restored)
3438 } else if let page = try ? responseWithoutImage ( response) . toDomain ( ) {
3539 pages. append ( page)
@@ -49,7 +53,8 @@ final class WebPageRepositoryImpl: WebPageRepository {
4953
5054 func upsert( _ urlString: String) async throws {
5155 do {
52- let metadata = try await metadataService. fetchMetadata ( from: urlString)
56+ let accountID = authService. uid
57+ let metadata = try await metadataService. fetchMetadata ( from: urlString, accountID: accountID)
5358 let request = WebPageRequest (
5459 title: metadata. title,
5560 url: urlString,
@@ -65,8 +70,9 @@ final class WebPageRepositoryImpl: WebPageRepository {
6570
6671 func delete( id: String, urlString: String) async throws {
6772 do {
73+ let accountID = authService. uid
6874 try await webPageService. deleteWebPage ( id)
69- await metadataService. removeCachedImage ( for: urlString)
75+ await metadataService. removeCachedImage ( for: urlString, accountID : accountID )
7076 } catch {
7177 throw error. toDomain ( )
7278 }
@@ -82,7 +88,7 @@ final class WebPageRepositoryImpl: WebPageRepository {
8288}
8389
8490private extension WebPageRepositoryImpl {
85- func needsImageRestore( _ response: WebPageResponse ) async -> Bool {
91+ func needsImageRestore( _ response: WebPageResponse , accountID : String ? ) async -> Bool {
8692 guard !response. imageURL. isEmpty,
8793 let imageURL = URL ( string: response. imageURL) ,
8894 imageURL. isFileURL else {
@@ -91,7 +97,7 @@ private extension WebPageRepositoryImpl {
9197
9298 let expectedImageURL : URL
9399 do {
94- expectedImageURL = try await metadataService. cachedImageURL ( for: response. url)
100+ expectedImageURL = try await metadataService. cachedImageURL ( for: response. url, accountID : accountID )
95101 } catch {
96102 return true
97103 }
@@ -113,8 +119,8 @@ private extension WebPageRepositoryImpl {
113119 } . value
114120 }
115121
116- func restoreWebPage( _ response: WebPageResponse ) async throws -> WebPage ? {
117- let metadata = try await metadataService. fetchMetadata ( from: response. url)
122+ func restoreWebPage( _ response: WebPageResponse , accountID : String ? ) async throws -> WebPage ? {
123+ let metadata = try await metadataService. fetchMetadata ( from: response. url, accountID : accountID )
118124 let request = WebPageRequest (
119125 title: metadata. title,
120126 url: response. url,
0 commit comments