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 type ReadMessagesResponse = Vec<ReadMessagesResponseEntry>;
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct ReadMessagesResponse {
pub messages: Vec<(String, String)>,
pub struct ReadMessagesResponseEntry {
channel: String,
message: String,
}
impl Command for ReadMessages {
@@ -40,10 +43,10 @@ impl Command for ReadMessages {
let channel = expect_property_type!(Some(cvalue), "channel", 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);
assert_eq!(
result,
Ok(ReadMessagesResponse {
messages: vec![
("channel1".to_string(), "message1".to_string()),
("channel2".to_string(), "message2".to_string()),
]
})
Ok(vec![
ReadMessagesResponseEntry {
channel: "channel1".to_string(),
message: "message1".to_string(),
},
ReadMessagesResponseEntry {
channel: "channel2".to_string(),
message: "message2".to_string(),
},
])
);
}
}