Skip to content

Commit

Permalink
New grouping options (#26)
Browse files Browse the repository at this point in the history
  • Loading branch information
Szegoo authored Feb 8, 2024
1 parent 781b986 commit e548cbf
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 1 deletion.
6 changes: 6 additions & 0 deletions routes/src/consumption.rs
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ use types::{DispatchClassConsumption, ParaId, Timestamp, WeightConsumption};
#[serde(crate = "rocket::serde")]
pub enum Grouping {
BlockNumber,
Minute,
Hour,
Day,
Month,
Year,
Expand All @@ -37,6 +39,8 @@ pub enum Grouping {
impl<'r> FromFormField<'r> for Grouping {
fn from_value(field: ValueField<'r>) -> form::Result<'r, Self> {
match field.value {
"minute" => Ok(Grouping::Minute),
"hour" => Ok(Grouping::Hour),
"day" => Ok(Grouping::Day),
"month" => Ok(Grouping::Month),
"year" => Ok(Grouping::Year),
Expand Down Expand Up @@ -117,6 +121,8 @@ fn get_aggregation_key(datum: WeightConsumption, grouping: Grouping) -> String {

match grouping {
Grouping::BlockNumber => datum.block_number.to_string(),
Grouping::Minute => datetime.format("%Y-%m-%dT%H:%M").to_string(),
Grouping::Hour => datetime.format("%Y-%m-%dT%H:00").to_string(),
Grouping::Day => datetime.format("%Y-%m-%d").to_string(),
Grouping::Month => datetime.format("%Y-%m").to_string(),
Grouping::Year => datetime.format("%Y").to_string(),
Expand Down
18 changes: 18 additions & 0 deletions routes/tests/consumption.rs
Original file line number Diff line number Diff line change
Expand Up @@ -253,6 +253,24 @@ fn grouping_works() {
);
assert_eq!(consumption_data, expected_consumption);

// Grouping by minute:
let response = client.get("/consumption/polkadot/2000?grouping=minute").dispatch();
assert_eq!(response.status(), Status::Ok);

let consumption_data = parse_ok_response(response);
let expected_consumption =
group_consumption(mock_consumption().get(&para).unwrap().clone(), Grouping::Minute);
assert_eq!(consumption_data, expected_consumption);

// Grouping by hour:
let response = client.get("/consumption/polkadot/2000?grouping=hour").dispatch();
assert_eq!(response.status(), Status::Ok);

let consumption_data = parse_ok_response(response);
let expected_consumption =
group_consumption(mock_consumption().get(&para).unwrap().clone(), Grouping::Hour);
assert_eq!(consumption_data, expected_consumption);

// Grouping by day:
let response = client.get("/consumption/polkadot/2000?grouping=day").dispatch();
assert_eq!(response.status(), Status::Ok);
Expand Down
1 change: 0 additions & 1 deletion routes/tests/extend_subscription.rs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ use routes::{
};
use shared::{
chaindata::get_para,
current_timestamp,
payment::PaymentError,
registry::{registered_para, update_registry},
};
Expand Down
15 changes: 15 additions & 0 deletions scripts/reset_env.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#!/bin/bash

TRACKER="./target/release/tracker"
WATCHDOG="scripts/watchdog.sh"

PIDS=$(pgrep -f "$TRACKER|$WATCHDOG")

if [ -z "$PIDS" ]; then
echo "Process not found."
else
# Kill each process
for PID in $PIDS; do
kill -9 $PID
done
fi

0 comments on commit e548cbf

Please sign in to comment.