Added a records function to client.
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 1s

This commit is contained in:
2026-02-18 12:00:39 -05:00
parent bcddc1047a
commit 0614c98221
3 changed files with 46 additions and 7 deletions

View File

@@ -5,10 +5,7 @@ mod mtterror;
mod name;
mod queue;
use action::{
Action, Addition, CalcValue, Calculation, DocDef, Field, FieldType, MsgAction, Operand, Query,
UserAction,
};
use action::*;
use document::{Clock, CreateDoc, Session};
use message::{wrapper::Message, MessageAction};
use queue::{
@@ -107,11 +104,41 @@ impl MoreThanText {
output
}
pub fn request<UA>(&mut self, req: UA) -> Result<String, MTTError>
pub fn records<UA>(&mut self, request: UA) -> Result<Records, MTTError>
where
UA: Into<UserAction>,
{
Ok("something".to_string())
let req = request.into();
let (tx, rx) = channel();
let sender_id = self.queue.add_sender(tx);
let doc_id = req.doc_name().clone();
let msg = Message::new(req);
let msg_id = msg.get_message_id();
let paths = [
Path::new(
Include::Just(msg_id.clone()),
Include::Just(doc_id.clone()),
Include::Just(Action::Records),
),
Path::new(
Include::Just(msg_id.clone()),
Include::Just(doc_id.clone()),
Include::Just(Action::Error),
),
];
for path in paths.iter() {
let reg_msg = Register::new(sender_id.clone(), RegMsg::AddRoute(path.clone()));
self.queue.send(Message::new(reg_msg));
rx.recv().unwrap(); // Wait for completion.
}
self.queue.send(msg);
let result = rx.recv().unwrap();
self.queue.remove_sender(&sender_id);
match result.get_action() {
MsgAction::Records(data) => Ok(data.clone()),
MsgAction::Error(err) => Err(err.clone()),
_ => unreachable!("should only receive records or errors"),
}
}
pub fn get_document(&self, name: &str, id: &str) -> Result<String, MTTError> {