// // LiveRepository.swift // SodaLive // // Created by klaus on 2023/08/09. // import Foundation import CombineMoya import Combine import Moya final class LiveRepository { private let api = MoyaProvider() func roomList(request: GetRoomListRequest) -> AnyPublisher { return api.requestPublisher(.roomList(request: request)) } func recentVisitRoomUsers() -> AnyPublisher { return api.requestPublisher(.recentVisitRoomUsers) } func getReservations(isActive: Bool) -> AnyPublisher { return api.requestPublisher(.getReservations(isActive: isActive)) } func getReservation(reservationId: Int) -> AnyPublisher { return api.requestPublisher(.getReservation(reservationId: reservationId)) } func cancelReservation(reservationId: Int, reason: String) -> AnyPublisher { return api.requestPublisher(.cancelReservation(request: CancelLiveReservationRequest(reservationId: reservationId, reason: reason))) } func getRoomDetail(roomId: Int) -> AnyPublisher { return api.requestPublisher(.getRoomDetail(roomId: roomId)) } func makeReservation(request: MakeLiveReservationRequest) -> AnyPublisher { return api.requestPublisher(.makeReservation(request: request)) } func enterRoom(request: EnterOrQuitLiveRoomRequest) -> AnyPublisher { return api.requestPublisher(.enterRoom(request: request)) } func getRecentRoomInfo() -> AnyPublisher { return api.requestPublisher(.getRecentRoomInfo) } func createRoom(parameters: [MultipartFormData]) -> AnyPublisher { return api.requestPublisher(.createRoom(parameters: parameters)) } func startLive(roomId: Int) -> AnyPublisher { return api.requestPublisher(.startLive(request: StartLiveRequest(roomId: roomId))) } func cancelRoom(roomId: Int, reason: String) -> AnyPublisher { return api.requestPublisher(.cancelRoom(request: CancelLiveRequest(roomId: roomId, reason: reason))) } func editLiveRoomInfo(roomId: Int, parameters: [MultipartFormData]) -> AnyPublisher { return api.requestPublisher(.editLiveRoomInfo(roomId: roomId, parameters: parameters)) } }