라이브 방

- 하트 후원 API 연결
- 하트 후원 성공시 하트 애니메이션 호출
- 하트 후원 성공시 채팅으로 알림
This commit is contained in:
Yu Sung
2024-10-24 18:13:56 +09:00
parent 9fa1bf9f64
commit 17b4516b87
12 changed files with 221 additions and 11 deletions

View File

@@ -37,6 +37,8 @@ enum LiveApi {
case deleteDonationMessage(roomId: Int, messageUUID: String)
case getUserProfile(roomId: Int, userId: Int)
case getAllMenuPreset(creatorId: Int)
case likeHeart(request: LiveRoomLikeHeartRequest)
case getTotalHeartCount(roomId: Int)
}
extension LiveApi: TargetType {
@@ -129,15 +131,21 @@ extension LiveApi: TargetType {
case .getAllMenuPreset:
return "/live/room/menu/all"
case .likeHeart:
return "/live/room/like-heart"
case .getTotalHeartCount(let roomId):
return "/live/room/\(roomId)/heart-total"
}
}
var method: Moya.Method {
switch self {
case .roomList, .recentVisitRoomUsers, .getReservations, .getReservation, .getRoomDetail, .getTags, .getRecentRoomInfo, .getRoomInfo, .donationStatus, .donationTotal, .getDonationMessageList, .getUserProfile, .getAllMenuPreset:
case .roomList, .recentVisitRoomUsers, .getReservations, .getReservation, .getRoomDetail, .getTags, .getRecentRoomInfo, .getRoomInfo, .donationStatus, .donationTotal, .getDonationMessageList, .getUserProfile, .getAllMenuPreset, .getTotalHeartCount:
return .get
case .makeReservation, .enterRoom, .createRoom, .quitRoom, .donation, .refundDonation, .kickOut:
case .makeReservation, .enterRoom, .createRoom, .quitRoom, .donation, .refundDonation, .kickOut, .likeHeart:
return .post
case .setListener, .setSpeaker, .setManager, .cancelReservation, .startLive, .cancelRoom, .editLiveRoomInfo:
@@ -166,7 +174,7 @@ extension LiveApi: TargetType {
parameters: parameters,
encoding: URLEncoding.queryString)
case .recentVisitRoomUsers, .getTags, .getRecentRoomInfo, .getRoomInfo, .refundDonation, .donationStatus, .donationTotal, .getUserProfile:
case .recentVisitRoomUsers, .getTags, .getRecentRoomInfo, .getRoomInfo, .refundDonation, .donationStatus, .donationTotal, .getUserProfile, .getTotalHeartCount:
return .requestPlain
case .getReservations(let isActive):
@@ -233,6 +241,9 @@ extension LiveApi: TargetType {
case .getAllMenuPreset(let creatorId):
return .requestParameters(parameters: ["creatorId" : creatorId], encoding: URLEncoding.queryString)
case .likeHeart(let request):
return .requestJSONEncodable(request)
}
}