Removed document id from message.
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 1s
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 1s
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
use super::MessageAction;
|
||||
use crate::{
|
||||
action::{CalcValue, Field, FieldType, MsgAction, Operand, Query, Reply},
|
||||
mtterror::{ErrorID, MTTError},
|
||||
@@ -9,19 +10,30 @@ use std::{
|
||||
collections::{HashMap, HashSet},
|
||||
time::Duration,
|
||||
};
|
||||
use super::MessageAction;
|
||||
use uuid::Uuid;
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct Message {
|
||||
msg_id: Uuid,
|
||||
document_id: NameType,
|
||||
// document_id: NameType,
|
||||
action: MsgAction,
|
||||
route: Route,
|
||||
// session: Option<?>
|
||||
}
|
||||
|
||||
impl Message {
|
||||
pub fn new<A>(action: A) -> Self
|
||||
where
|
||||
A: Into<MsgAction>,
|
||||
{
|
||||
Self {
|
||||
msg_id: Uuid::new_v4(),
|
||||
action: action.into(),
|
||||
route: Route::default(),
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
pub fn new<D, A>(doc_id: D, action: A) -> Self
|
||||
where
|
||||
D: Into<NameType>,
|
||||
@@ -34,6 +46,7 @@ impl Message {
|
||||
route: Route::default(),
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
pub fn get_message_id(&self) -> &Uuid {
|
||||
&self.msg_id
|
||||
@@ -65,7 +78,6 @@ impl Message {
|
||||
{
|
||||
Self {
|
||||
msg_id: self.msg_id.clone(),
|
||||
document_id: self.document_id.clone(),
|
||||
action: action.into(),
|
||||
route: Route::default(),
|
||||
}
|
||||
@@ -78,7 +90,6 @@ impl Message {
|
||||
{
|
||||
Self {
|
||||
msg_id: self.msg_id.clone(),
|
||||
document_id: doc_id.into(),
|
||||
action: action.into(),
|
||||
route: Route::default(),
|
||||
}
|
||||
@@ -94,14 +105,7 @@ mod messages {
|
||||
fn can_the_document_be_a_named_reference() {
|
||||
let dts = [Name::english("one"), Name::english("two")];
|
||||
for document in dts.into_iter() {
|
||||
let msg = Message::new(
|
||||
document.clone(),
|
||||
MsgAction::Create(DocDef::new(document.clone())),
|
||||
);
|
||||
match &msg.document_id {
|
||||
NameType::Name(data) => assert_eq!(data, &document),
|
||||
_ => unreachable!("should have been a string id"),
|
||||
}
|
||||
let msg = Message::new(MsgAction::Create(DocDef::new(document.clone())));
|
||||
match msg.get_action() {
|
||||
MsgAction::Create(_) => {}
|
||||
_ => unreachable!("should have been a create document"),
|
||||
@@ -112,11 +116,7 @@ mod messages {
|
||||
#[test]
|
||||
fn can_the_document_be_an_id() {
|
||||
let document = Uuid::new_v4();
|
||||
let msg = Message::new(document.clone(), Query::new(document.clone()));
|
||||
match msg.document_id {
|
||||
NameType::ID(data) => assert_eq!(data, document),
|
||||
_ => unreachable!("should have been an id"),
|
||||
}
|
||||
let msg = Message::new(Query::new(document.clone()));
|
||||
match msg.get_action() {
|
||||
MsgAction::Query(_) => {}
|
||||
_ => unreachable!("should have been an access query"),
|
||||
@@ -126,7 +126,7 @@ mod messages {
|
||||
#[test]
|
||||
fn do_messages_contain_routes() {
|
||||
let name = Name::english("whatever");
|
||||
let mut msg = Message::new(name.clone(), Query::new(name.clone()));
|
||||
let mut msg = Message::new(Query::new(name.clone()));
|
||||
let default_route = msg.get_route();
|
||||
match default_route.msg_id {
|
||||
Include::Just(_) => unreachable!("should defalt to all"),
|
||||
@@ -166,7 +166,7 @@ mod messages {
|
||||
fn is_the_message_id_random() {
|
||||
let mut ids: Vec<Uuid> = Vec::new();
|
||||
for _ in 0..5 {
|
||||
let msg = Message::new(Name::english("tester"), Query::new(Name::english("test")));
|
||||
let msg = Message::new(Query::new(Name::english("test")));
|
||||
let id = msg.get_message_id().clone();
|
||||
assert!(!ids.contains(&id), "{:?} containts {}", ids, id);
|
||||
ids.push(id);
|
||||
@@ -176,14 +176,10 @@ mod messages {
|
||||
#[test]
|
||||
fn can_make_reply_message() {
|
||||
let name = Name::english("testing");
|
||||
let msg = Message::new(name.clone(), Query::new(name.clone()));
|
||||
let msg = Message::new(Query::new(name.clone()));
|
||||
let responce = Reply::new(Name::english("something"));
|
||||
let reply = msg.response(responce);
|
||||
assert_eq!(reply.get_message_id(), msg.get_message_id());
|
||||
match &reply.document_id {
|
||||
NameType::Name(data) => assert_eq!(data, &name),
|
||||
_ => unreachable!("should have been a name"),
|
||||
}
|
||||
match reply.get_action() {
|
||||
MsgAction::Reply(_) => {}
|
||||
_ => unreachable!("should have been a reply"),
|
||||
@@ -193,14 +189,10 @@ mod messages {
|
||||
#[test]
|
||||
fn can_make_error_message() {
|
||||
let name = Name::english("testing");
|
||||
let msg = Message::new(name.clone(), Query::new(name.clone()));
|
||||
let msg = Message::new(Query::new(name.clone()));
|
||||
let err_msg = Uuid::new_v4().to_string();
|
||||
let result = msg.response(MTTError::new(NameType::None, ErrorID::DocumentNotFound));
|
||||
assert_eq!(result.get_message_id(), msg.get_message_id());
|
||||
match &result.document_id {
|
||||
NameType::Name(data) => assert_eq!(data, &name),
|
||||
_ => unreachable!("should have been a name"),
|
||||
}
|
||||
match result.get_action() {
|
||||
MsgAction::Error(data) => match data.error_id() {
|
||||
ErrorID::DocumentNotFound => {}
|
||||
@@ -213,14 +205,12 @@ mod messages {
|
||||
#[test]
|
||||
fn can_make_a_response_message() {
|
||||
let doc_id = Uuid::new_v4();
|
||||
let msg = Message::new(doc_id.clone(), Query::new(doc_id.clone()));
|
||||
let msg = Message::new(Query::new(doc_id.clone()));
|
||||
let data = Uuid::new_v4().to_string();
|
||||
let result1 = msg.response(MTTError::new(NameType::None, ErrorID::DocumentNotFound));
|
||||
let result2 = msg.response(Reply::new(NameType::None));
|
||||
assert_eq!(result1.get_message_id(), msg.get_message_id());
|
||||
assert_eq!(result2.get_message_id(), msg.get_message_id());
|
||||
assert_eq!(result1.document_id, msg.document_id);
|
||||
assert_eq!(result2.document_id, msg.document_id);
|
||||
let action1 = result1.get_action();
|
||||
match action1 {
|
||||
MsgAction::Error(err) => match err.error_id() {
|
||||
|
||||
Reference in New Issue
Block a user