Moved update into action module.
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 0s

This commit is contained in:
2026-02-16 09:53:04 -05:00
parent d47124656f
commit f1eb397d3b
8 changed files with 127 additions and 72 deletions

View File

@@ -1,8 +1,5 @@
use crate::{
name::NameType,
message::MessageAction,
};
use super::Query;
use crate::{message::MessageAction, name::NameType};
#[derive(Clone, Debug)]
pub struct Delete {
@@ -11,7 +8,10 @@ pub struct Delete {
}
impl Delete {
pub fn new<NT>(name: NT) -> Self where NT: Into<NameType> {
pub fn new<NT>(name: NT) -> Self
where
NT: Into<NameType>,
{
Self {
doc_name: name.into(),
query: Query::internal(),
@@ -35,11 +35,11 @@ impl MessageAction for Delete {
#[cfg(test)]
mod deletes {
use super::*;
use crate::{
action::{Calculation, Operand},
name::test_support::random_name
name::test_support::random_name,
};
use super::*;
#[test]
fn can_create_delete_request() {

View File

@@ -1,12 +1,6 @@
use super::{Addition, Delete, DocDef, Query, Records, Reply, Show, UserAction};
use super::{Addition, Delete, DocDef, Query, Records, Reply, Show, Update, UserAction};
use crate::{
message::{
wrapper::Update,
MessageAction,
},
mtterror::MTTError,
name::NameType,
queue::data_director::Register,
message::MessageAction, mtterror::MTTError, name::NameType, queue::data_director::Register,
};
#[derive(Clone, Debug)]
@@ -43,7 +37,7 @@ impl MessageAction for MsgAction {
Self::Register(data) => data.doc_name(),
Self::Reply(data) => data.doc_name(),
Self::Show(data) => data.doc_name(),
_ => &NameType::None,
Self::Update(data) => data.doc_name(),
}
}
}

87
src/action/update.rs Normal file
View File

@@ -0,0 +1,87 @@
use super::{Query, RequestData};
use crate::{message::MessageAction, name::NameType};
#[derive(Clone, Debug)]
pub struct Update {
doc_name: NameType,
query: Query,
values: RequestData,
}
impl Update {
pub fn new<NT>(name: NT) -> Self
where
NT: Into<NameType>,
{
Self {
doc_name: name.into(),
query: Query::internal(),
values: RequestData::new(),
}
}
pub fn get_query(&self) -> &Query {
&self.query
}
pub fn get_query_mut(&mut self) -> &mut Query {
&mut self.query
}
pub fn get_values(&self) -> &RequestData {
&self.values
}
pub fn get_values_mut(&mut self) -> &mut RequestData {
&mut self.values
}
}
impl MessageAction for Update {
fn doc_name(&self) -> &NameType {
&self.doc_name
}
}
#[cfg(test)]
mod updates {
use super::*;
use crate::{
action::{Calculation, Operand},
name::test_support::random_name,
};
#[test]
fn is_default_update_empty() {
let name = random_name();
let expected: NameType = name.clone().into();
let update = Update::new(name);
assert_eq!(update.doc_name(), &expected);
assert_eq!(update.get_query().iter().count(), 0);
assert_eq!(update.get_values().iter().count(), 0);
}
#[test]
fn can_update_query_be_altered() {
let name = random_name();
let expected: NameType = name.clone().into();
let mut update = Update::new(name);
let query = update.get_query_mut();
let mut calc = Calculation::new(Operand::Equal);
calc.add_value("something").unwrap();
query.add(random_name(), calc);
assert_eq!(update.doc_name(), &expected);
assert_eq!(update.get_query().iter().count(), 1);
}
#[test]
fn can_update_data_be_altered() {
let name = random_name();
let expected: NameType = name.clone().into();
let mut update = Update::new(name);
let values = update.get_values_mut();
values.add_field(random_name(), "something");
assert_eq!(update.doc_name(), &expected);
assert_eq!(update.get_values().iter().count(), 1);
}
}