实现了 Agent 和 Profile 数据类,添加了 AddAgent 界面
This commit is contained in:
72
app/src/main/java/com/aiosman/ravenow/entity/Agent.kt
Normal file
72
app/src/main/java/com/aiosman/ravenow/entity/Agent.kt
Normal file
@@ -0,0 +1,72 @@
|
||||
package com.aiosman.ravenow.entity
|
||||
|
||||
import androidx.paging.PagingSource
|
||||
import androidx.paging.PagingState
|
||||
import com.aiosman.ravenow.data.ListContainer
|
||||
import com.aiosman.ravenow.data.AgentService
|
||||
import com.aiosman.ravenow.data.ServiceException
|
||||
import com.aiosman.ravenow.data.api.ApiClient
|
||||
import java.io.IOException
|
||||
|
||||
/**
|
||||
* 智能体
|
||||
*/
|
||||
|
||||
|
||||
data class AgentEntity(
|
||||
val author: String,
|
||||
val avatar: String,
|
||||
val breakMode: Boolean,
|
||||
val createdAt: String,
|
||||
val desc: String,
|
||||
val id: Int,
|
||||
val isPublic: Boolean,
|
||||
val openId: String,
|
||||
val profile: ProfileEntity,
|
||||
val title: String,
|
||||
val updatedAt: String,
|
||||
val useCount: Int
|
||||
)
|
||||
|
||||
data class ProfileEntity(
|
||||
val aiAccount: Boolean,
|
||||
val avatar: String,
|
||||
val banner: String,
|
||||
val bio: String,
|
||||
val chatAIId: String,
|
||||
val id: Int,
|
||||
val nickname: String,
|
||||
val trtcUserId: String,
|
||||
val username: String
|
||||
)
|
||||
|
||||
class AgentLoaderExtraArgs(
|
||||
|
||||
)
|
||||
class AgentLoader : DataLoader<AgentEntity,AgentLoaderExtraArgs>() {
|
||||
override suspend fun fetchData(
|
||||
page: Int,
|
||||
pageSize: Int,
|
||||
extra: AgentLoaderExtraArgs
|
||||
): ListContainer<AgentEntity> {
|
||||
val result = ApiClient.api.getAgent(
|
||||
page = page,
|
||||
pageSize = pageSize,
|
||||
|
||||
)
|
||||
val data = result.body()?.let {
|
||||
ListContainer(
|
||||
list = it.list.map { it.toAgentEntity()},
|
||||
total = it.total,
|
||||
page = page,
|
||||
pageSize = pageSize
|
||||
)
|
||||
}
|
||||
if (data == null) {
|
||||
throw ServiceException("Failed to get agent")
|
||||
}
|
||||
return data
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user