// // UserRepository.swift // SodaLive // // Created by klaus on 2023/08/09. // import Foundation import CombineMoya import Combine import Moya final class UserRepository { private let api = MoyaProvider() func login(request: LoginRequest) -> AnyPublisher { return api.requestPublisher(.login(request: request)) } func signUp(parameters: [MultipartFormData]) -> AnyPublisher { return api.requestPublisher(.signUp(parameters: parameters)) } func findPassword(email: String) -> AnyPublisher { return api.requestPublisher(.findPassword(request: ForgotPasswordRequest(email: email))) } func searchUser(nickname: String) -> AnyPublisher { return api.requestPublisher(.searchUser(nickname: nickname)) } func getMypage() -> AnyPublisher { return api.requestPublisher(.getMypage) } func getMemberInfo() -> AnyPublisher { return api.requestPublisher(.getMemberInfo) } func getMemberCan() -> AnyPublisher { return api.requestPublisher(.getMemberInfo) } func updateNotificationSettings(live: Bool? = nil, uploadContent: Bool? = nil, message: Bool? = nil) -> AnyPublisher { return api.requestPublisher( .notification( request: UpdateNotificationSettingRequest( live: live, uploadContent: uploadContent, message: message ) ) ) } func logout() -> AnyPublisher { return api.requestPublisher(.logout) } func logoutAllDevice() -> AnyPublisher { return api.requestPublisher(.logoutAllDevice) } func signOut(reason: String, password: String) -> AnyPublisher { return api.requestPublisher(.signOut(request: SignOutRequest(reason: reason, password: password))) } func updatePushToken(pushToken: String) -> AnyPublisher { return api.requestPublisher(.updatePushToken(request: PushTokenUpdateRequest(pushToken: pushToken))) } func creatorFollow(creatorId: Int) -> AnyPublisher { return api.requestPublisher(.creatorFollow(request: CreatorFollowRequest(creatorId: creatorId))) } func creatorUnFollow(creatorId: Int) -> AnyPublisher { return api.requestPublisher(.creatorUnFollow(request: CreatorFollowRequest(creatorId: creatorId))) } func getBlockedMemberList(page: Int, size: Int) -> AnyPublisher { return api.requestPublisher(.getBlockedMemberList(page: page, size: size)) } func memberBlock(userId: Int) -> AnyPublisher { return api.requestPublisher(.memberBlock(request: MemberBlockRequest(blockMemberId: userId))) } func memberUnBlock(userId: Int) -> AnyPublisher { return api.requestPublisher(.memberUnBlock(request: MemberBlockRequest(blockMemberId: userId))) } func getMyProfile() -> AnyPublisher { return api.requestPublisher(.getMyProfile) } func profileImageUpdate(parameter: MultipartFormData) -> AnyPublisher { return api.requestPublisher(.profileImageUpdate(parameter: parameter)) } func profileUpdate(request: ProfileUpdateRequest) -> AnyPublisher { return api.requestPublisher(.profileUpdate(request: request)) } func getChangeNicknamePrice() -> AnyPublisher { return api.requestPublisher(.getChangeNicknamePrice) } func checkNickname(nickname: String) -> AnyPublisher { return api.requestPublisher(.checkNickname(nickname: nickname)) } func changeNickname(request: ProfileUpdateRequest) -> AnyPublisher { return api.requestPublisher(.changeNickname(request: request)) } func updateIdfa(request: IdfaUpdateRequest) -> AnyPublisher { return api.requestPublisher(.updateIdfa(request: request)) } }