Private
Public Access
1
0

kordophone: add support for /messages

This commit is contained in:
2025-01-20 19:43:21 -08:00
parent 793faab721
commit a8104c379c
8 changed files with 206 additions and 6 deletions

View File

@@ -5,7 +5,7 @@ use kordophone::api::http_client::Credentials;
use dotenv;
use anyhow::Result;
use clap::Subcommand;
use crate::printers::ConversationPrinter;
use crate::printers::{ConversationPrinter, MessagePrinter};
pub fn make_api_client_from_env() -> HTTPAPIClient {
dotenv::dotenv().ok();
@@ -30,6 +30,11 @@ pub enum Commands {
/// Prints all known conversations on the server.
Conversations,
/// Prints all messages in a conversation.
Messages {
conversation_id: String,
},
/// Prints the server Kordophone version.
Version,
}
@@ -40,6 +45,7 @@ impl Commands {
match cmd {
Commands::Version => client.print_version().await,
Commands::Conversations => client.print_conversations().await,
Commands::Messages { conversation_id } => client.print_messages(conversation_id).await,
}
}
}
@@ -68,6 +74,14 @@ impl ClientCli {
Ok(())
}
pub async fn print_messages(&mut self, conversation_id: String) -> Result<()> {
let messages = self.api.get_messages(&conversation_id).await?;
for message in messages {
println!("{}", MessagePrinter::new(&message.into()));
}
Ok(())
}
}