add latest price route
This commit is contained in:
parent
0d4ed15460
commit
9c03d38f6e
3 changed files with 31 additions and 4 deletions
|
@ -62,6 +62,8 @@ async fn rocket() -> _ {
|
|||
|
||||
let config = config::get_config();
|
||||
|
||||
// todo : log warnings on misconfiguration
|
||||
|
||||
rocket::build()
|
||||
.mount(
|
||||
"/",
|
||||
|
@ -90,7 +92,8 @@ async fn rocket() -> _ {
|
|||
routes::flow::end_flow_route,
|
||||
routes::flow::continue_flow_route,
|
||||
routes::flow::create_flow_route,
|
||||
routes::item::move_transaction_route
|
||||
routes::item::move_transaction_route,
|
||||
routes::item::variant_price_latest_by_origin
|
||||
],
|
||||
)
|
||||
.manage(itemdb)
|
||||
|
|
|
@ -28,5 +28,29 @@ pub async fn variant_price_history_by_origin(
|
|||
.variant(variant_id)
|
||||
.ok_or_else(variant_does_not_exist_error)?;
|
||||
|
||||
Ok(json!(variant.price_history_by_origin(origin).await))
|
||||
Ok(json!(variant.price_history_by_origin(origin, None).await))
|
||||
}
|
||||
|
||||
#[get("/item/<item_id>/<variant_id>/price_latest?<origin>")]
|
||||
pub async fn variant_price_latest_by_origin(
|
||||
item_id: &str,
|
||||
variant_id: &str,
|
||||
itemdb: &State<ItemDB>,
|
||||
t: Token,
|
||||
c: &State<Config>,
|
||||
origin: &str,
|
||||
) -> FallibleApiResponse {
|
||||
check_auth!(t, c);
|
||||
|
||||
let variant = itemdb
|
||||
.get_item(item_id)
|
||||
.ok_or_else(item_does_not_exist_error)?
|
||||
.variant(variant_id)
|
||||
.ok_or_else(variant_does_not_exist_error)?;
|
||||
|
||||
Ok(json!(variant
|
||||
.price_history_by_origin(origin, Some(1))
|
||||
.await
|
||||
.first()
|
||||
.unwrap()))
|
||||
}
|
||||
|
|
|
@ -225,14 +225,14 @@ impl Variant {
|
|||
)
|
||||
}
|
||||
|
||||
pub async fn price_history_by_origin(&self, origin: &str) -> Vec<Price> {
|
||||
pub async fn price_history_by_origin(&self, origin: &str, limit: Option<i64>) -> Vec<Price> {
|
||||
Transaction::find(
|
||||
doc! {
|
||||
"item": &self.item,
|
||||
"variant": &self.variant,
|
||||
"origin": origin
|
||||
},
|
||||
None,
|
||||
limit,
|
||||
Some(sort_by_timestamp()),
|
||||
)
|
||||
.await
|
||||
|
|
Loading…
Reference in a new issue