설정 페이지 추가

This commit is contained in:
Yu Sung
2023-08-10 22:05:14 +09:00
parent d06f4d6a36
commit dbeb15ba17
24 changed files with 1368 additions and 4 deletions

View File

@@ -14,6 +14,10 @@ enum UserApi {
case findPassword(request: ForgotPasswordRequest)
case searchUser(nickname: String)
case getMypage
case getMemberInfo
case notification(request: UpdateNotificationSettingRequest)
case logout
case logoutAllDevice
}
extension UserApi: TargetType {
@@ -37,15 +41,27 @@ extension UserApi: TargetType {
case .getMypage:
return "/member/mypage"
case .getMemberInfo:
return "/member/info"
case .notification:
return "/member/notification"
case .logout:
return "/member/logout"
case .logoutAllDevice:
return "/member/logout/all"
}
}
var method: Moya.Method {
switch self {
case .login, .signUp, .findPassword:
case .login, .signUp, .findPassword, .notification, .logout, .logoutAllDevice:
return .post
case .searchUser, .getMypage:
case .searchUser, .getMypage, .getMemberInfo:
return .get
}
}
@@ -66,6 +82,12 @@ extension UserApi: TargetType {
case .getMypage:
return .requestParameters(parameters: ["container" : "ios"], encoding: URLEncoding.queryString)
case .getMemberInfo, .logout, .logoutAllDevice:
return .requestPlain
case .notification(let request):
return .requestJSONEncodable(request)
}
}

View File

@@ -32,4 +32,28 @@ final class UserRepository {
func getMypage() -> AnyPublisher<Response, MoyaError> {
return api.requestPublisher(.getMypage)
}
func getMemberInfo() -> AnyPublisher<Response, MoyaError> {
return api.requestPublisher(.getMemberInfo)
}
func updateNotificationSettings(live: Bool? = nil, uploadContent: Bool? = nil, message: Bool? = nil) -> AnyPublisher<Response, MoyaError> {
return api.requestPublisher(
.notification(
request: UpdateNotificationSettingRequest(
live: live,
uploadContent: uploadContent,
message: message
)
)
)
}
func logout() -> AnyPublisher<Response, MoyaError> {
return api.requestPublisher(.logout)
}
func logoutAllDevice() -> AnyPublisher<Response, MoyaError> {
return api.requestPublisher(.logoutAllDevice)
}
}