kordophone: add support for /messages
This commit is contained in:
@@ -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(())
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user