feat(auth): 인증 후 콘텐츠 설정과 개발용 모의 인증을 추가한다
This commit is contained in:
@@ -46,19 +46,45 @@ final class UserRepository {
|
||||
}
|
||||
|
||||
func getMypage() -> AnyPublisher<Response, MoyaError> {
|
||||
#if AUTH_VERIFICATION_MOCK
|
||||
return selfMemberPublisher(.getMypage, as: MyPageResponse.self)
|
||||
#else
|
||||
return api.requestPublisher(.getMypage)
|
||||
#endif
|
||||
}
|
||||
|
||||
func getMemberInfo() -> AnyPublisher<Response, MoyaError> {
|
||||
#if AUTH_VERIFICATION_MOCK
|
||||
return selfMemberPublisher(.getMemberInfo, as: GetMemberInfoResponse.self)
|
||||
#else
|
||||
return api.requestPublisher(.getMemberInfo)
|
||||
#endif
|
||||
}
|
||||
|
||||
func updateContentPreference(request: UpdateContentPreferenceRequest) -> AnyPublisher<Response, MoyaError> {
|
||||
#if AUTH_VERIFICATION_MOCK
|
||||
let requestToken = UserDefaults.string(forKey: .token)
|
||||
let session = AuthVerificationMock.shared.session(for: requestToken)
|
||||
return api.requestPublisher(.updateContentPreference(request: request))
|
||||
.map { response in
|
||||
AuthVerificationMock.shared.updateContentPreference(from: response.data,
|
||||
statusCode: response.statusCode,
|
||||
requestToken: requestToken,
|
||||
session: session)
|
||||
return response
|
||||
}
|
||||
.eraseToAnyPublisher()
|
||||
#else
|
||||
return api.requestPublisher(.updateContentPreference(request: request))
|
||||
#endif
|
||||
}
|
||||
|
||||
func getMemberCan() -> AnyPublisher<Response, MoyaError> {
|
||||
#if AUTH_VERIFICATION_MOCK
|
||||
return getMemberInfo()
|
||||
#else
|
||||
return api.requestPublisher(.getMemberInfo)
|
||||
#endif
|
||||
}
|
||||
|
||||
func updateNotificationSettings(live: Bool? = nil, uploadContent: Bool? = nil, message: Bool? = nil, audition: Bool? = nil) -> AnyPublisher<Response, MoyaError> {
|
||||
@@ -149,4 +175,23 @@ final class UserRepository {
|
||||
func getMemberProfile(memberId: Int) -> AnyPublisher<Response, MoyaError> {
|
||||
return api.requestPublisher(.getMemberProfile(memberId: memberId))
|
||||
}
|
||||
|
||||
#if AUTH_VERIFICATION_MOCK
|
||||
private func selfMemberPublisher<Member: Decodable>(_ target: UserApi, as type: Member.Type) -> AnyPublisher<Response, MoyaError> {
|
||||
let requestToken = UserDefaults.string(forKey: .token)
|
||||
let session = AuthVerificationMock.shared.session(for: requestToken)
|
||||
return api.requestPublisher(target)
|
||||
.map { response in
|
||||
let data = AuthVerificationMock.shared.overlayMemberResponse(response.data,
|
||||
statusCode: response.statusCode,
|
||||
requestToken: requestToken,
|
||||
session: session,
|
||||
as: type)
|
||||
guard data != response.data else { return response }
|
||||
return Response(statusCode: response.statusCode, data: data,
|
||||
request: response.request, response: response.response)
|
||||
}
|
||||
.eraseToAnyPublisher()
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user