Files
sodalive-ios/SodaLive/Sources/Chat/Talk/Room/ChatRoomRepository.swift

58 lines
1.9 KiB
Swift

//
// ChatRoomRepository.swift
// SodaLive
//
// Created by klaus on 9/2/25.
//
import Foundation
import CombineMoya
import Combine
import Moya
class ChatRoomRepository {
private let talkApi = MoyaProvider<TalkApi>()
/**
* : +
*/
func enterChatRoom(roomId: Int, characterImageId: Int?) -> AnyPublisher<Response, MoyaError> {
return talkApi.requestPublisher(.enterChatRoom(roomId: roomId, characterImageId: characterImageId))
}
/**
* :
*/
func loadMoreMessages(roomId: Int, cursor: Int?) -> AnyPublisher<Response, MoyaError> {
return talkApi.requestPublisher(.getChatRoomMessages(roomId: roomId, cursor: cursor, limit: 20))
}
/**
* API
* - : .
* - : (ServerChatMessage) ( AI )
*/
func sendMessage(roomId: Int, message: String) -> AnyPublisher<Response, MoyaError> {
return talkApi.requestPublisher(.sendMessage(roomId: roomId, request: SendChatMessageRequest(message: message)))
}
/**
*
* -
*/
func purchaseMessage(roomId: Int, messageId: Int64) -> AnyPublisher<Response, MoyaError> {
return talkApi.requestPublisher(
.purchaseMessage(
roomId: roomId,
messageId: messageId,
request: ChatMessagePurchaseRequest()
)
)
}
/** */
func getChatQuotaStatus() -> AnyPublisher<Response, MoyaError> {
return talkApi.requestPublisher(.getChatQuotaStatus)
}
}