sodalive-ios/SodaLive/Sources/Live/LiveRepository.swift

68 lines
2.5 KiB
Swift

//
// 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<LiveApi>()
func roomList(request: GetRoomListRequest) -> AnyPublisher<Response, MoyaError> {
return api.requestPublisher(.roomList(request: request))
}
func recentVisitRoomUsers() -> AnyPublisher<Response, MoyaError> {
return api.requestPublisher(.recentVisitRoomUsers)
}
func getReservations(isActive: Bool) -> AnyPublisher<Response, MoyaError> {
return api.requestPublisher(.getReservations(isActive: isActive))
}
func getReservation(reservationId: Int) -> AnyPublisher<Response, MoyaError> {
return api.requestPublisher(.getReservation(reservationId: reservationId))
}
func cancelReservation(reservationId: Int, reason: String) -> AnyPublisher<Response, MoyaError> {
return api.requestPublisher(.cancelReservation(request: CancelLiveReservationRequest(reservationId: reservationId, reason: reason)))
}
func getRoomDetail(roomId: Int) -> AnyPublisher<Response, MoyaError> {
return api.requestPublisher(.getRoomDetail(roomId: roomId))
}
func makeReservation(request: MakeLiveReservationRequest) -> AnyPublisher<Response, MoyaError> {
return api.requestPublisher(.makeReservation(request: request))
}
func enterRoom(request: EnterOrQuitLiveRoomRequest) -> AnyPublisher<Response, MoyaError> {
return api.requestPublisher(.enterRoom(request: request))
}
func getRecentRoomInfo() -> AnyPublisher<Response, MoyaError> {
return api.requestPublisher(.getRecentRoomInfo)
}
func createRoom(parameters: [MultipartFormData]) -> AnyPublisher<Response, MoyaError> {
return api.requestPublisher(.createRoom(parameters: parameters))
}
func startLive(roomId: Int) -> AnyPublisher<Response, MoyaError> {
return api.requestPublisher(.startLive(request: StartLiveRequest(roomId: roomId)))
}
func cancelRoom(roomId: Int, reason: String) -> AnyPublisher<Response, MoyaError> {
return api.requestPublisher(.cancelRoom(request: CancelLiveRequest(roomId: roomId, reason: reason)))
}
func editLiveRoomInfo(roomId: Int, parameters: [MultipartFormData]) -> AnyPublisher<Response, MoyaError> {
return api.requestPublisher(.editLiveRoomInfo(roomId: roomId, parameters: parameters))
}
}