mirror of https://github.com/buster-so/buster.git
handler format looking good
This commit is contained in:
parent
02978e37e8
commit
1765b20917
|
@ -0,0 +1,2 @@
|
||||||
|
pub mod types;
|
||||||
|
pub mod helpers;
|
|
@ -0,0 +1,19 @@
|
||||||
|
use serde::{Deserialize, Serialize};
|
||||||
|
use uuid::Uuid;
|
||||||
|
|
||||||
|
#[derive(Debug, Serialize, Deserialize)]
|
||||||
|
pub struct ThreadMessage {
|
||||||
|
pub id: Uuid,
|
||||||
|
pub request_message: ThreadUserMessage,
|
||||||
|
pub response_messages: Vec<String>,
|
||||||
|
pub reasoning: Vec<String>,
|
||||||
|
pub created_at: String,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Serialize, Deserialize)]
|
||||||
|
pub struct ThreadUserMessage {
|
||||||
|
pub request: String,
|
||||||
|
pub sender_id: Uuid,
|
||||||
|
pub sender_name: String,
|
||||||
|
pub sender_avatar: Option<String>,
|
||||||
|
}
|
|
@ -1,5 +1,2 @@
|
||||||
pub mod operations;
|
|
||||||
pub mod types;
|
pub mod types;
|
||||||
|
pub mod helpers;
|
||||||
// Re-export commonly used items
|
|
||||||
pub use types::{ThreadRequest, ThreadResponse};
|
|
||||||
|
|
|
@ -1,37 +0,0 @@
|
||||||
use anyhow::Result;
|
|
||||||
use uuid::Uuid;
|
|
||||||
|
|
||||||
use crate::threads::types::{ThreadRequest, ThreadResponse};
|
|
||||||
|
|
||||||
/// Creates a new thread based on the provided request
|
|
||||||
pub async fn create_thread(request: ThreadRequest) -> Result<ThreadResponse> {
|
|
||||||
// This is a placeholder implementation
|
|
||||||
// You'll need to implement the actual database operations
|
|
||||||
let now = chrono::Utc::now();
|
|
||||||
|
|
||||||
Ok(ThreadResponse {
|
|
||||||
id: Uuid::new_v4(),
|
|
||||||
title: request.title,
|
|
||||||
organization_id: request.organization_id,
|
|
||||||
created_by: request.created_by,
|
|
||||||
created_at: now,
|
|
||||||
updated_at: now,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(test)]
|
|
||||||
mod tests {
|
|
||||||
use super::*;
|
|
||||||
|
|
||||||
#[tokio::test]
|
|
||||||
async fn test_create_thread() {
|
|
||||||
let request = ThreadRequest {
|
|
||||||
title: "Test Thread".to_string(),
|
|
||||||
organization_id: Uuid::new_v4(),
|
|
||||||
created_by: Uuid::new_v4(),
|
|
||||||
};
|
|
||||||
|
|
||||||
let result = create_thread(request).await;
|
|
||||||
assert!(result.is_ok());
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,22 +1,19 @@
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use uuid::Uuid;
|
use uuid::Uuid;
|
||||||
use chrono::{DateTime, Utc};
|
|
||||||
|
|
||||||
#[derive(Debug, Serialize, Deserialize)]
|
use crate::messages::types::ThreadMessage;
|
||||||
pub struct ThreadRequest {
|
|
||||||
pub title: String,
|
|
||||||
pub organization_id: Uuid,
|
|
||||||
pub created_by: Uuid,
|
|
||||||
}
|
|
||||||
|
|
||||||
|
// Add more thread-related types as needed
|
||||||
#[derive(Debug, Serialize, Deserialize)]
|
#[derive(Debug, Serialize, Deserialize)]
|
||||||
pub struct ThreadResponse {
|
pub struct ThreadWithMessages {
|
||||||
pub id: Uuid,
|
pub id: Uuid,
|
||||||
pub title: String,
|
pub title: String,
|
||||||
pub organization_id: Uuid,
|
pub is_favorited: bool,
|
||||||
pub created_by: Uuid,
|
pub messages: Vec<ThreadMessage>,
|
||||||
pub created_at: DateTime<Utc>,
|
pub created_at: String,
|
||||||
pub updated_at: DateTime<Utc>,
|
pub updated_at: String,
|
||||||
|
pub created_by: String,
|
||||||
|
pub created_by_id: String,
|
||||||
|
pub created_by_name: String,
|
||||||
|
pub created_by_avatar: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add more thread-related types as needed
|
|
|
@ -1,7 +1,9 @@
|
||||||
use anyhow::{Error, Result};
|
use anyhow::{Error, Result};
|
||||||
use chrono::Utc;
|
use chrono::Utc;
|
||||||
use diesel::{insert_into, ExpressionMethods, QueryDsl};
|
use diesel::{insert_into, ExpressionMethods, QueryDsl};
|
||||||
use diesel_async::{AsyncConnection, RunQueryDsl};
|
use diesel_async::{RunQueryDsl};
|
||||||
|
use handlers::messages::types::{ThreadMessage, ThreadUserMessage};
|
||||||
|
use handlers::threads::types::ThreadWithMessages;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use serde_json::Value;
|
use serde_json::Value;
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
@ -43,37 +45,6 @@ use crate::{
|
||||||
use super::agent_message_transformer::transform_message;
|
use super::agent_message_transformer::transform_message;
|
||||||
use litellm::Message as AgentMessage;
|
use litellm::Message as AgentMessage;
|
||||||
|
|
||||||
#[derive(Debug, Serialize, Deserialize)]
|
|
||||||
pub struct TempInitChat {
|
|
||||||
pub id: Uuid,
|
|
||||||
pub title: String,
|
|
||||||
pub is_favorited: bool,
|
|
||||||
pub messages: Vec<TempInitChatMessage>,
|
|
||||||
pub created_at: String,
|
|
||||||
pub updated_at: String,
|
|
||||||
pub created_by: String,
|
|
||||||
pub created_by_id: String,
|
|
||||||
pub created_by_name: String,
|
|
||||||
pub created_by_avatar: Option<String>,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Serialize, Deserialize)]
|
|
||||||
pub struct TempInitChatMessage {
|
|
||||||
pub id: Uuid,
|
|
||||||
pub request_message: TempRequestMessage,
|
|
||||||
pub response_messages: Vec<String>,
|
|
||||||
pub reasoning: Vec<String>,
|
|
||||||
pub created_at: String,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Serialize, Deserialize)]
|
|
||||||
pub struct TempRequestMessage {
|
|
||||||
pub request: String,
|
|
||||||
pub sender_id: Uuid,
|
|
||||||
pub sender_name: String,
|
|
||||||
pub sender_avatar: Option<String>,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Deserialize, Clone)]
|
#[derive(Debug, Deserialize, Clone)]
|
||||||
pub struct ChatCreateNewChat {
|
pub struct ChatCreateNewChat {
|
||||||
pub prompt: String,
|
pub prompt: String,
|
||||||
|
@ -155,13 +126,13 @@ impl AgentThreadHandler {
|
||||||
deleted_at: None,
|
deleted_at: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
let init_response = TempInitChat {
|
let init_response = ThreadWithMessages {
|
||||||
id: chat_id.clone(),
|
id: chat_id.clone(),
|
||||||
title: request.prompt.clone(),
|
title: request.prompt.clone(),
|
||||||
is_favorited: false,
|
is_favorited: false,
|
||||||
messages: vec![TempInitChatMessage {
|
messages: vec![ThreadMessage {
|
||||||
id: message_id.clone(),
|
id: message_id.clone(),
|
||||||
request_message: TempRequestMessage {
|
request_message: ThreadUserMessage {
|
||||||
request: request.prompt.clone(),
|
request: request.prompt.clone(),
|
||||||
sender_id: user.id,
|
sender_id: user.id,
|
||||||
sender_name: user.name.clone().unwrap_or_default(),
|
sender_name: user.name.clone().unwrap_or_default(),
|
||||||
|
|
Loading…
Reference in New Issue