@@ -27,38 +27,41 @@ extension DefaultBrowseRepository: BrowseRepository {
2727 /// Firebase 우선, 실패시 persistentStorage, persistentStorage도 실패시 Error반환
2828 /// - Returns: Observable<[BrowseQuest]>
2929 func fetch( ) -> Observable < [ BrowseQuest ] > {
30- return networkService. getAllowUsers ( limit: 10 )
30+ return self . networkService. getAllowUsers ( limit: 10 )
3131 . map { $0. toDomain ( ) }
32- . flatMap { user in
33- self . networkService
34- . read ( type: QuestDTO . self, userCase: . anotherUser( user. uuid) , access: . quests, filter: . today( Date ( ) ) )
35- . map { $0. toDomain ( ) }
36- . toArray ( )
37- . asObservable ( )
38- . map { questList in
39- return BrowseQuest ( user: user, quests: questList)
40- }
41- }
42-
32+ . flatMap ( fetchBrowseQuestNetworkService ( user: ) )
4333 . filter { !$0. quests. isEmpty }
4434 . toArray ( )
4535 . asObservable ( )
46- . do ( afterNext: { browseQuests in
36+ . do ( afterNext: { [ weak self] browseQuests in
37+ guard let self = self else { return }
4738 self . persistentStorage. deleteBrowseQuests ( )
4839 . asObservable ( )
4940 . concatMap { _ in
5041 Observable . from ( browseQuests)
51- . flatMap { browseQuest in
52- self . persistentStorage. saveBrowseQuest ( browseQuest: browseQuest)
53- . asObservable ( )
54- }
42+ . flatMap ( self . saveBrowseQuestPersistentStorage ( browseQuest: ) )
5543 }
56- . subscribe ( onError: { error in
57- print ( error)
58- } ) . disposed ( by: self . disposeBag)
44+ . subscribe ( )
45+ . disposed ( by: self . disposeBag)
5946 } )
6047 . catch { error in
6148 return self . persistentStorage. fetchBrowseQuests ( )
6249 }
6350 }
6451}
52+
53+ private extension DefaultBrowseRepository {
54+ func fetchBrowseQuestNetworkService( user: User ) -> Observable < BrowseQuest > {
55+ networkService
56+ . read ( type: QuestDTO . self, userCase: . anotherUser( user. uuid) , access: . quests, filter: . today( Date ( ) ) )
57+ . map { $0. toDomain ( ) }
58+ . toArray ( )
59+ . asObservable ( )
60+ . map { return BrowseQuest ( user: user, quests: $0) }
61+ }
62+
63+ func saveBrowseQuestPersistentStorage( browseQuest: BrowseQuest ) -> Observable < BrowseQuest > {
64+ persistentStorage. saveBrowseQuest ( browseQuest: browseQuest)
65+ . asObservable ( )
66+ }
67+ }
0 commit comments