라이브 예약내역 페이지 추가

This commit is contained in:
Yu Sung
2023-08-11 07:25:13 +09:00
parent af43d14f18
commit e082e07fa6
11 changed files with 645 additions and 1 deletions

View File

@@ -11,6 +11,9 @@ import Moya
enum LiveApi {
case roomList(request: GetRoomListRequest)
case recentVisitRoomUsers
case getReservations(isActive: Bool)
case getReservation(reservationId: Int)
case cancelReservation(request: CancelLiveReservationRequest)
}
extension LiveApi: TargetType {
@@ -25,13 +28,25 @@ extension LiveApi: TargetType {
case .recentVisitRoomUsers:
return "/live/room/recent_visit_room/users"
case .getReservations:
return "/live/reservation"
case .getReservation(let reservationId):
return "/live/reservation/\(reservationId)"
case .cancelReservation:
return "/live/reservation/cancel"
}
}
var method: Moya.Method {
switch self {
case .roomList, .recentVisitRoomUsers:
case .roomList, .recentVisitRoomUsers, .getReservations, .getReservation:
return .get
case .cancelReservation:
return .put
}
}
@@ -55,6 +70,28 @@ extension LiveApi: TargetType {
case .recentVisitRoomUsers:
return .requestPlain
case .getReservations(let isActive):
let parameters = [
"timezone": TimeZone.current.identifier,
"isActive": isActive
] as [String : Any]
return .requestParameters(
parameters: parameters,
encoding: URLEncoding.queryString
)
case .getReservation:
let parameters = ["timezone": TimeZone.current.identifier] as [String : Any]
return .requestParameters(
parameters: parameters,
encoding: URLEncoding.queryString
)
case .cancelReservation(let request):
return .requestJSONEncodable(request)
}
}

View File

@@ -20,4 +20,16 @@ final class LiveRepository {
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)))
}
}