Replaced session id with SessionEntry.
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Has been cancelled

This commit is contained in:
2026-05-03 10:12:36 -04:00
parent 332200f2c6
commit 7004ce4b81
2 changed files with 77 additions and 45 deletions

View File

@@ -1,7 +1,7 @@
use crate::{
action::{Field, MsgAction},
name::NameType,
queue::data_director::{Include, Path, Route},
queue::data_director::{Include, Path, Route, SessionEntry},
};
use uuid::Uuid;
@@ -41,7 +41,7 @@ pub struct Message {
msg_id: MessageID,
action: MsgAction,
route: Route,
session: Field,
session: SessionEntry,
}
impl Message {
@@ -58,10 +58,15 @@ impl Message {
output
}
pub fn session_id(&self) -> &Field {
self.session.id()
}
pub fn set_session<F>(&self, session: F) -> Self
where
F: Into<Field>,
{
/*
let sess_id = match session.into() {
Field::Uuid(data) => Field::Uuid(data.clone()),
Field::StaticString(data) => match Uuid::try_from(data) {
@@ -70,8 +75,10 @@ impl Message {
},
_ => Field::None,
};
*/
let mut output = self.clone();
output.session = sess_id;
// output.session = sess_id;
output.session = SessionEntry::new(session);
output
}
@@ -115,7 +122,7 @@ impl Default for Message {
msg_id: MessageID::new(),
action: MsgAction::None,
route: Route::default(),
session: Field::None,
session: SessionEntry::new(Field::None),
}
}
}
@@ -141,7 +148,7 @@ mod messages {
MsgAction::None => {}
_ => panic!("should have been no action"),
}
assert_eq!(msg.session, Field::None);
assert_eq!(msg.session_id(), &Field::None);
}
#[test]
@@ -150,11 +157,11 @@ mod messages {
let qry = Query::new(doc_name.clone());
let msg = Message::new(qry);
let expected: NameType = doc_name.into();
match msg.action {
match &msg.action {
MsgAction::Query(data) => assert_eq!(data.doc_name(), &expected),
_ => unreachable!("should have been a query"),
}
match msg.session {
match msg.session_id() {
Field::None => {}
_ => unreachable!("should have been none"),
}
@@ -175,25 +182,16 @@ mod messages {
let qry = Query::new(doc_name.clone());
let sess_id: Field = Uuid::new_v4().into();
let msg = Message::new(qry).set_session(sess_id.clone());
assert_eq!(msg.session, sess_id);
assert_eq!(msg.session_id(), &sess_id);
}
#[test]
fn can_session_be_set_by_string() {
let doc_name = Name::english("string");
let qry = Query::new(doc_name.clone());
let sess_id = Uuid::new_v4();
let msg = Message::new(qry).set_session(sess_id.to_string());
assert_eq!(msg.session, sess_id.into());
}
#[test]
fn does_garbage_return_none() {
let doc_name = Name::english("garbage");
let qry = Query::new(doc_name.clone());
let sess_id = "not a uuid";
let msg = Message::new(qry).set_session(sess_id);
assert_eq!(msg.session, Field::None);
let sess_id: Field = Uuid::new_v4().to_string().into();
let msg = Message::new(qry).set_session(sess_id.clone());
assert_eq!(msg.session_id(), &sess_id);
}
#[test]
@@ -202,16 +200,7 @@ mod messages {
let qry = Query::new(doc_name.clone());
let sess_id = Uuid::new_v4();
let msg = Message::new(qry).set_session(sess_id.clone());
assert_eq!(msg.session, sess_id.into());
}
#[test]
fn does_wrong_field_type_return_none() {
let doc_name = Name::english("uuid");
let qry = Query::new(doc_name.clone());
let sess_id = FieldType::DateTime.get_default();
let msg = Message::new(qry).set_session(sess_id.clone());
assert_eq!(msg.session, Field::None);
assert_eq!(msg.session_id(), &sess_id.into());
}
#[test]