commands: create result struct for readmessages

This commit is contained in:
2025-11-21 14:55:57 +09:00
parent 4a1df97ad6
commit 130fe49597

View File

@@ -7,9 +7,12 @@ use crate::commands::{
pub struct ReadMessages; pub struct ReadMessages;
pub type ReadMessagesResponse = Vec<ReadMessagesResponseEntry>;
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct ReadMessagesResponse { pub struct ReadMessagesResponseEntry {
pub messages: Vec<(String, String)>, channel: String,
message: String,
} }
impl Command for ReadMessages { impl Command for ReadMessages {
@@ -40,10 +43,10 @@ impl Command for ReadMessages {
let channel = expect_property_type!(Some(cvalue), "channel", Text).to_string(); let channel = expect_property_type!(Some(cvalue), "channel", Text).to_string();
let message = expect_property_type!(Some(mvalue), "message", Text).to_string(); let message = expect_property_type!(Some(mvalue), "message", Text).to_string();
messages.push((channel, message)); messages.push(ReadMessagesResponseEntry { channel, message });
} }
Ok(ReadMessagesResponse { messages }) Ok(messages)
} }
} }
@@ -65,12 +68,16 @@ mod tests {
let result = ReadMessages::parse_raw_response(input); let result = ReadMessages::parse_raw_response(input);
assert_eq!( assert_eq!(
result, result,
Ok(ReadMessagesResponse { Ok(vec![
messages: vec![ ReadMessagesResponseEntry {
("channel1".to_string(), "message1".to_string()), channel: "channel1".to_string(),
("channel2".to_string(), "message2".to_string()), message: "message1".to_string(),
] },
}) ReadMessagesResponseEntry {
channel: "channel2".to_string(),
message: "message2".to_string(),
},
])
); );
} }
} }