chore: clippy

This commit is contained in:
nathan
2024-06-27 12:18:39 +08:00
parent 06950e5543
commit d50194df25
4 changed files with 47 additions and 5 deletions

View File

@ -235,7 +235,10 @@ impl ChatCloudService for ChatService {
message: &str, message: &str,
message_type: ChatMessageType, message_type: ChatMessageType,
) -> Result<ChatMessageStream, FlowyError> { ) -> Result<ChatMessageStream, FlowyError> {
todo!() self
.cloud_service
.send_chat_message(workspace_id, chat_id, message, message_type)
.await
} }
fn send_question( fn send_question(
@ -274,7 +277,13 @@ impl ChatCloudService for ChatService {
offset: MessageCursor, offset: MessageCursor,
limit: u64, limit: u64,
) -> FutureResult<RepeatedChatMessage, FlowyError> { ) -> FutureResult<RepeatedChatMessage, FlowyError> {
todo!() FutureResult::new(async move {
RepeatedChatMessage {
messages: vec![],
has_more: false,
total: 0,
}
})
} }
fn get_related_message( fn get_related_message(
@ -283,7 +292,12 @@ impl ChatCloudService for ChatService {
chat_id: &str, chat_id: &str,
message_id: i64, message_id: i64,
) -> FutureResult<RepeatedRelatedQuestion, FlowyError> { ) -> FutureResult<RepeatedRelatedQuestion, FlowyError> {
todo!() FutureResult::new(async move {
RepeatedRelatedQuestion {
message_id,
items: vec![],
}
})
} }
fn generate_answer( fn generate_answer(

View File

@ -102,7 +102,6 @@ impl Plugin {
let value = rx let value = rx
.await .await
.map_err(|err| Error::Internal(anyhow!("error waiting for async response: {:?}", err)))??; .map_err(|err| Error::Internal(anyhow!("error waiting for async response: {:?}", err)))??;
let value = P::parse_response(value)?; let value = P::parse_response(value)?;
Ok(value) Ok(value)
} }

View File

@ -143,6 +143,9 @@ impl<W: Write> RawPeer<W> {
let mut pending = self.0.pending.lock(); let mut pending = self.0.pending.lock();
pending.insert(id, rh); pending.insert(id, rh);
} }
// Call the ResponseHandler if the send fails. Otherwise, the response will be
// called in handle_response.
if let Err(e) = self.send(&json!({ if let Err(e) = self.send(&json!({
"id": id, "id": id,
"method": method, "method": method,
@ -162,7 +165,10 @@ impl<W: Write> RawPeer<W> {
pending.remove(&id) pending.remove(&id)
}; };
match handler { match handler {
Some(response_handler) => response_handler.invoke(resp), Some(response_handler) => {
//
response_handler.invoke(resp)
},
None => warn!("[RPC] id {} not found in pending", id), None => warn!("[RPC] id {} not found in pending", id),
} }
} }
@ -244,6 +250,10 @@ impl<W: Write> Clone for RawPeer<W> {
} }
} }
pub struct ResponsePayload {
value: Value,
}
pub type Response = Result<Value, RemoteError>; pub type Response = Result<Value, RemoteError>;
enum ResponseHandler { enum ResponseHandler {
Chan(mpsc::Sender<Result<Value, Error>>), Chan(mpsc::Sender<Result<Value, Error>>),

View File

@ -32,6 +32,25 @@ impl ChatPluginOperation {
Ok(resp) Ok(resp)
} }
pub async fn stream_message(
&self,
chat_id: &str,
plugin_id: PluginId,
message: &str,
) -> Result<String, Error> {
let plugin = self
.plugin
.upgrade()
.ok_or(Error::Internal(anyhow!("Plugin is dropped")))?;
let params =
json!({"chat_id": chat_id, "method": "stream_answer", "params": {"content": message}});
let resp = plugin
.async_send_request::<ChatResponseParser>("handle", &params)
.await?;
Ok(resp)
}
pub async fn get_related_questions( pub async fn get_related_questions(
&self, &self,
chat_id: &str, chat_id: &str,