Moved session information into message.
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Has been cancelled
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Has been cancelled
This commit is contained in:
@@ -143,7 +143,7 @@ impl MTTClient {
|
|||||||
];
|
];
|
||||||
let msg = Message::default()
|
let msg = Message::default()
|
||||||
.set_id(msg_id)
|
.set_id(msg_id)
|
||||||
.set_session(self.session_id.clone().into());
|
.set_session(self.session_id.clone());
|
||||||
for path in paths.iter() {
|
for path in paths.iter() {
|
||||||
let reg_msg = Register::new(self.sender_id.clone(), RegMsg::AddRoute(path.clone()));
|
let reg_msg = Register::new(self.sender_id.clone(), RegMsg::AddRoute(path.clone()));
|
||||||
self.queue.send(msg.set_action(reg_msg));
|
self.queue.send(msg.set_action(reg_msg));
|
||||||
@@ -181,7 +181,7 @@ impl MTTClient {
|
|||||||
];
|
];
|
||||||
let msg = Message::default()
|
let msg = Message::default()
|
||||||
.set_id(msg_id.clone())
|
.set_id(msg_id.clone())
|
||||||
.set_session(self.session_id.clone().into());
|
.set_session(self.session_id.clone());
|
||||||
for path in paths.iter() {
|
for path in paths.iter() {
|
||||||
let reg_msg = Register::new(self.sender_id.clone(), RegMsg::AddRoute(path.clone()));
|
let reg_msg = Register::new(self.sender_id.clone(), RegMsg::AddRoute(path.clone()));
|
||||||
self.queue.send(msg.set_action(reg_msg));
|
self.queue.send(msg.set_action(reg_msg));
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
action::{Field, MsgAction},
|
action::{Field, FieldType, MsgAction},
|
||||||
name::NameType,
|
name::NameType,
|
||||||
queue::data_director::{Include, Path, Route},
|
queue::data_director::{Include, Path, Route},
|
||||||
};
|
};
|
||||||
@@ -49,12 +49,7 @@ impl Message {
|
|||||||
where
|
where
|
||||||
A: Into<MsgAction>,
|
A: Into<MsgAction>,
|
||||||
{
|
{
|
||||||
Self {
|
Self::default().set_action(action)
|
||||||
msg_id: MessageID::new(),
|
|
||||||
action: action.into(),
|
|
||||||
route: Route::default(),
|
|
||||||
session: Field::None,
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn set_id(&self, msg_id: MessageID) -> Self {
|
pub fn set_id(&self, msg_id: MessageID) -> Self {
|
||||||
@@ -63,9 +58,20 @@ impl Message {
|
|||||||
output
|
output
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn set_session(&self, session: Field) -> Self {
|
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) {
|
||||||
|
Ok(id) => Field::Uuid(id.clone()),
|
||||||
|
Err(_) => Field::None,
|
||||||
|
},
|
||||||
|
_ => Field::None,
|
||||||
|
};
|
||||||
let mut output = self.clone();
|
let mut output = self.clone();
|
||||||
output.session = session;
|
output.session = sess_id;
|
||||||
output
|
output
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -165,13 +171,49 @@ mod messages {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn can_session_be_set() {
|
fn can_session_be_set() {
|
||||||
let doc_name = Name::english("identification");
|
let doc_name = Name::english("use field");
|
||||||
let qry = Query::new(doc_name.clone());
|
let qry = Query::new(doc_name.clone());
|
||||||
let sess_id: Field = Uuid::new_v4().into();
|
let sess_id: Field = Uuid::new_v4().into();
|
||||||
let msg = Message::new(qry).set_session(sess_id.clone());
|
let msg = Message::new(qry).set_session(sess_id.clone());
|
||||||
assert_eq!(msg.session, sess_id);
|
assert_eq!(msg.session, 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);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn can_uuid_set_session_id() {
|
||||||
|
let doc_name = Name::english("uuid");
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn can_action_be_set() {
|
fn can_action_be_set() {
|
||||||
let doc_name = Name::english("action");
|
let doc_name = Name::english("action");
|
||||||
|
|||||||
Reference in New Issue
Block a user