Skip to content

Commit e94c99a

Browse files
committed
[fix] UserRepository Firebase Error ignore
1 parent 3290799 commit e94c99a

File tree

3 files changed

+46
-15
lines changed

3 files changed

+46
-15
lines changed

DailyQuest/DailyQuest/Data/Repositories/DefaultBrowseRepository.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ extension DefaultBrowseRepository: BrowseRepository {
2727
/// Firebase 우선, 실패시 persistentStorage, persistentStorage도 실패시 Error반환
2828
/// - Returns: Observable<[BrowseQuest]>
2929
func fetch() -> Observable<[BrowseQuest]> {
30-
return self.networkService.getAllowUsers(limit: 10)
30+
return networkService.getAllowUsers(limit: 10)
3131
.map { $0.toDomain() }
3232
.flatMap { user in
3333
self.networkService

DailyQuest/DailyQuest/Data/Repositories/DefaultUserRepository.swift

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -21,32 +21,28 @@ final class DefaultUserRepository {
2121

2222
extension DefaultUserRepository: UserRepository {
2323
func isLoggedIn() -> BehaviorRelay<String?> {
24-
return self.networkService.uid
24+
return networkService.uid
2525
}
2626

2727
func readUser() -> Observable<User> {
2828
return self.persistentStorage.fetchUserInfo()
29-
.catch { _ in
30-
return self.networkService.read(type: UserDTO.self, userCase: .currentUser, access: .userInfo, filter: nil)
31-
.map { $0.toDomain() }
29+
.catch { [weak self] _ in
30+
guard let self = self else { return Observable.just(User()) }
31+
return self.fetchUserNetworkService()
3232
}
3333
}
3434

3535
func updateUser(by user: User) -> Observable<User> {
36-
return self.persistentStorage.updateUserInfo(user: user)
36+
return persistentStorage.updateUserInfo(user: user)
3737
.asObservable()
38-
.concatMap { _ in
39-
return self.networkService.update(userCase: .currentUser, access: .userInfo, dto: user.toDTO())
40-
.map { $0.toDomain() }
41-
.asObservable()
42-
}
38+
.flatMap(updateUserNetworkService(user:))
4339
}
4440

4541
func fetchUser(by uuid: String) -> Observable<User> {
46-
return self.networkService.read(type: UserDTO.self,
47-
userCase: .anotherUser(uuid),
48-
access: .userInfo,
49-
filter: nil)
42+
return networkService.read(type: UserDTO.self,
43+
userCase: .anotherUser(uuid),
44+
access: .userInfo,
45+
filter: nil)
5046
.map { $0.toDomain() }
5147
}
5248
}
@@ -62,3 +58,18 @@ extension DefaultUserRepository: ProtectedUserRepository {
6258
}
6359
}
6460
}
61+
62+
private extension DefaultUserRepository {
63+
func fetchUserNetworkService() -> Observable<User> {
64+
networkService.read(type: UserDTO.self, userCase: .currentUser, access: .userInfo, filter: nil)
65+
.map { $0.toDomain() }
66+
}
67+
68+
func updateUserNetworkService(user: User) -> Observable<User> {
69+
networkService.update(userCase: .currentUser, access: .userInfo, dto: user.toDTO())
70+
.map { $0.toDomain() }
71+
.asObservable()
72+
.catchAndReturn(user)
73+
}
74+
}
75+

DailyQuest/DailyQuest/Domain/Entities/User.swift

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,24 @@ struct User {
1414
let backgroundImageURL: String
1515
let description: String
1616
let allow: Bool
17+
18+
init(){
19+
self.uuid = ""
20+
self.nickName = ""
21+
self.profileURL = ""
22+
self.backgroundImageURL = ""
23+
self.description = ""
24+
self.allow = false
25+
}
26+
27+
init(uuid: String, nickName: String, profileURL: String, backgroundImageURL: String, description: String, allow: Bool) {
28+
self.uuid = uuid
29+
self.nickName = nickName
30+
self.profileURL = profileURL
31+
self.backgroundImageURL = backgroundImageURL
32+
self.description = description
33+
self.allow = allow
34+
}
35+
36+
1737
}

0 commit comments

Comments
 (0)