update expiry
This commit is contained in:
parent
012e5273b1
commit
58f5b1d93c
3 changed files with 71 additions and 51 deletions
|
@ -45,36 +45,6 @@ pub fn get_items_route(itemdb: &State<ItemDB>, t: Token, c: &State<Config>) -> F
|
|||
Ok(json!({"items": items}))
|
||||
}
|
||||
|
||||
#[get("/items/stat")]
|
||||
pub async fn item_stat_route(
|
||||
itemdb: &State<ItemDB>,
|
||||
t: Token,
|
||||
c: &State<Config>,
|
||||
) -> FallibleApiResponse {
|
||||
check_auth!(t, c);
|
||||
|
||||
let items = itemdb.items();
|
||||
let item_count = items.len();
|
||||
let mut transaction_count = 0;
|
||||
let mut total_price = 0.0;
|
||||
|
||||
for item in items {
|
||||
for var in itemdb.get_item(&item).unwrap().variants.keys() {
|
||||
let item_var = itemdb.get_item(&item).unwrap().variant(var).unwrap();
|
||||
for t in item_var.inventory().await {
|
||||
transaction_count += 1;
|
||||
total_price += t.price.value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Ok(json!({
|
||||
"item_count": item_count,
|
||||
"total_transactions": transaction_count,
|
||||
"total_price": total_price
|
||||
}))
|
||||
}
|
||||
|
||||
/// Return an API Response for an `Item`
|
||||
#[get("/item/<item_id>")]
|
||||
pub fn item_route(
|
||||
|
@ -162,11 +132,17 @@ pub async fn unique_field_route(
|
|||
}
|
||||
}
|
||||
|
||||
#[get("/items/expired")]
|
||||
pub async fn expired_items_route(t: Token, c: &State<Config>) -> FallibleApiResponse {
|
||||
#[get("/items/expired?<days>")]
|
||||
pub async fn expired_items_route(days: Option<&str>, t: Token, c: &State<Config>) -> FallibleApiResponse {
|
||||
check_auth!(t, c);
|
||||
|
||||
let t = Transaction::active_expired().await;
|
||||
let days = if let Some(days) = days {
|
||||
days.parse().map_err(|_| api_error("Invalid days value")).ok()
|
||||
} else {
|
||||
None
|
||||
};
|
||||
|
||||
let t = Transaction::active_expired(days).await;
|
||||
|
||||
Ok(json!(t))
|
||||
}
|
||||
|
|
|
@ -54,3 +54,33 @@ pub async fn variant_price_latest_by_origin(
|
|||
.first()
|
||||
.unwrap()))
|
||||
}
|
||||
|
||||
#[get("/items/stat")]
|
||||
pub async fn item_stat_route(
|
||||
itemdb: &State<ItemDB>,
|
||||
t: Token,
|
||||
c: &State<Config>,
|
||||
) -> FallibleApiResponse {
|
||||
check_auth!(t, c);
|
||||
|
||||
let items = itemdb.items();
|
||||
let item_count = items.len();
|
||||
let mut transaction_count = 0;
|
||||
let mut total_price = 0.0;
|
||||
|
||||
for item in items {
|
||||
for var in itemdb.get_item(&item).unwrap().variants.keys() {
|
||||
let item_var = itemdb.get_item(&item).unwrap().variant(var).unwrap();
|
||||
for t in item_var.inventory().await {
|
||||
transaction_count += 1;
|
||||
total_price += t.price.value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Ok(json!({
|
||||
"item_count": item_count,
|
||||
"total_transactions": transaction_count,
|
||||
"total_price": total_price
|
||||
}))
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue