Refactor one-before retrieve

This commit is contained in:
Dominik Werder
2024-08-16 10:53:32 +02:00
parent b52fbd9044
commit 9068b1bbad
25 changed files with 467 additions and 136 deletions

View File

@@ -59,6 +59,7 @@ pub struct PlainEventsQuery {
log_level: String,
#[serde(default)]
use_rt: Option<RetentionTime>,
querymarker: String,
}
impl PlainEventsQuery {
@@ -85,6 +86,7 @@ impl PlainEventsQuery {
create_errors: Vec::new(),
log_level: String::new(),
use_rt: None,
querymarker: String::new(),
}
}
@@ -97,7 +99,7 @@ impl PlainEventsQuery {
}
pub fn one_before_range(&self) -> bool {
self.transform.need_one_before_range()
self.one_before_range || self.transform.need_one_before_range()
}
pub fn transform(&self) -> &TransformQuery {
@@ -296,6 +298,7 @@ impl FromUrl for PlainEventsQuery {
.map(Some)
.map_err(|_| Error::with_public_msg_no_trace(format!("can not parse useRt: {}", k)))
})?,
querymarker: pairs.get("querymarker").map_or(String::new(), |x| x.to_string()),
};
Ok(ret)
}
@@ -308,12 +311,10 @@ impl AppendToUrl for PlainEventsQuery {
SeriesRange::PulseRange(_) => todo!(),
}
self.channel.append_to_url(url);
{
let mut g = url.query_pairs_mut();
if self.one_before_range() {
g.append_pair("oneBeforeRange", "true");
}
}
let mut g = url.query_pairs_mut();
g.append_pair("oneBeforeRange", &self.one_before_range().to_string());
g.append_pair("querymarker", &self.querymarker);
drop(g);
self.transform.append_to_url(url);
let mut g = url.query_pairs_mut();
if let Some(x) = &self.timeout {
@@ -365,15 +366,22 @@ impl AppendToUrl for PlainEventsQuery {
pub struct EventsSubQuerySelect {
ch_conf: ChannelTypeConfigGen,
range: SeriesRange,
one_before_range: bool,
transform: TransformQuery,
wasm1: Option<String>,
}
impl EventsSubQuerySelect {
pub fn new(ch_info: ChannelTypeConfigGen, range: SeriesRange, transform: TransformQuery) -> Self {
pub fn new(
ch_info: ChannelTypeConfigGen,
range: SeriesRange,
one_before_range: bool,
transform: TransformQuery,
) -> Self {
Self {
ch_conf: ch_info,
range,
one_before_range,
transform,
wasm1: None,
}
@@ -510,6 +518,10 @@ impl EventsSubQuery {
&self.select.range
}
pub fn need_one_before_range(&self) -> bool {
self.select.one_before_range
}
pub fn transform(&self) -> &TransformQuery {
&self.select.transform
}