新增聊天消息提醒
This commit is contained in:
42
app/src/main/java/com/aiosman/riderpro/data/ChatService.kt
Normal file
42
app/src/main/java/com/aiosman/riderpro/data/ChatService.kt
Normal file
@@ -0,0 +1,42 @@
|
||||
package com.aiosman.riderpro.data
|
||||
|
||||
import com.aiosman.riderpro.data.api.ApiClient
|
||||
import com.aiosman.riderpro.data.api.UpdateChatNotificationRequestBody
|
||||
import com.aiosman.riderpro.entity.ChatNotification
|
||||
|
||||
interface ChatService {
|
||||
suspend fun getChatNotifications(
|
||||
targetTrtcId: String
|
||||
): ChatNotification?
|
||||
|
||||
suspend fun updateChatNotification(
|
||||
targetUserId: Int,
|
||||
strategy: String
|
||||
): ChatNotification
|
||||
}
|
||||
|
||||
class ChatServiceImpl : ChatService {
|
||||
override suspend fun getChatNotifications(
|
||||
targetTrtcId: String
|
||||
): ChatNotification? {
|
||||
val resp = ApiClient.api.getChatNotification(targetTrtcId)
|
||||
if (resp.isSuccessful) {
|
||||
return resp.body()?.data
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
override suspend fun updateChatNotification(
|
||||
targetUserId: Int,
|
||||
strategy: String
|
||||
): ChatNotification {
|
||||
val resp = ApiClient.api.updateChatNotification(UpdateChatNotificationRequestBody(
|
||||
targetUserId = targetUserId,
|
||||
strategy = strategy
|
||||
))
|
||||
if (resp.isSuccessful) {
|
||||
return resp.body()?.data!!
|
||||
}
|
||||
throw Exception("update chat notification failed")
|
||||
}
|
||||
}
|
||||
@@ -9,6 +9,7 @@ import com.aiosman.riderpro.data.Comment
|
||||
import com.aiosman.riderpro.data.DataContainer
|
||||
import com.aiosman.riderpro.data.ListContainer
|
||||
import com.aiosman.riderpro.data.Moment
|
||||
import com.aiosman.riderpro.entity.ChatNotification
|
||||
import com.google.gson.annotations.SerializedName
|
||||
import okhttp3.MultipartBody
|
||||
import okhttp3.RequestBody
|
||||
@@ -154,31 +155,6 @@ data class GenerateLoginCaptchaRequestBody(
|
||||
@SerializedName("username")
|
||||
val username: String,
|
||||
)
|
||||
//{
|
||||
// "id":48,
|
||||
// "dot": [
|
||||
// {
|
||||
// "index": 0,
|
||||
// "x": 76,
|
||||
// "y": 165
|
||||
// },
|
||||
// {
|
||||
// "index": 1,
|
||||
// "x": 144,
|
||||
// "y": 21
|
||||
// },
|
||||
// {
|
||||
// "index": 2,
|
||||
// "x": 220,
|
||||
// "y": 42
|
||||
// },
|
||||
// {
|
||||
// "index": 3,
|
||||
// "x": 10,
|
||||
// "y": 10
|
||||
// }
|
||||
// ]
|
||||
//}
|
||||
data class DotPosition(
|
||||
@SerializedName("index")
|
||||
val index: Int,
|
||||
@@ -193,6 +169,15 @@ data class CaptchaInfo(
|
||||
@SerializedName("dot")
|
||||
val dot: List<DotPosition>
|
||||
)
|
||||
|
||||
|
||||
data class UpdateChatNotificationRequestBody(
|
||||
@SerializedName("targetUserId")
|
||||
val targetUserId: Int,
|
||||
@SerializedName("strategy")
|
||||
val strategy: String,
|
||||
)
|
||||
|
||||
interface RiderProAPI {
|
||||
@POST("register")
|
||||
suspend fun register(@Body body: RegisterRequestBody): Response<Unit>
|
||||
@@ -417,4 +402,14 @@ interface RiderProAPI {
|
||||
@Body body: GenerateLoginCaptchaRequestBody
|
||||
): Response<DataContainer<CaptchaResponseBody>>
|
||||
|
||||
}
|
||||
@GET("chat/notification")
|
||||
suspend fun getChatNotification(
|
||||
@Query("targetTrtcId") targetTrtcId: String
|
||||
): Response<DataContainer<ChatNotification>>
|
||||
|
||||
@POST("chat/notification")
|
||||
suspend fun updateChatNotification(
|
||||
@Body body: UpdateChatNotificationRequestBody
|
||||
): Response<DataContainer<ChatNotification>>
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user