add min + expiry
This commit is contained in:
parent
0e174dc06e
commit
e1618b40ef
7 changed files with 88 additions and 17 deletions
|
@ -43,6 +43,10 @@ pub struct Variant {
|
|||
pub variant: String,
|
||||
/// Variant Name
|
||||
pub name: String,
|
||||
/// Minimum amount
|
||||
pub min: Option<i64>,
|
||||
/// Days until expiry
|
||||
pub expiry: Option<i64>,
|
||||
}
|
||||
|
||||
impl Variant {
|
||||
|
@ -59,6 +63,16 @@ impl Variant {
|
|||
.as_str()
|
||||
.unwrap()
|
||||
.to_string(),
|
||||
min: json
|
||||
.as_mapping()
|
||||
.unwrap()
|
||||
.get("min")
|
||||
.map(|x| x.as_i64().unwrap()),
|
||||
expiry: json
|
||||
.as_mapping()
|
||||
.unwrap()
|
||||
.get("expiry")
|
||||
.map(|x| x.as_i64().unwrap()),
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -85,7 +99,7 @@ impl Variant {
|
|||
let filter = doc! {
|
||||
"item": &self.item,
|
||||
"variant": &self.variant,
|
||||
"consumed": { "$exists": false }
|
||||
"consumed": { "$not": { "$type": "object" } }
|
||||
};
|
||||
|
||||
Transaction::find(filter, None, None).await.unwrap()
|
||||
|
@ -95,7 +109,7 @@ impl Variant {
|
|||
let filter = doc! {
|
||||
"item": &self.item,
|
||||
"variant": &self.variant,
|
||||
"consumed": { "$exists": true }
|
||||
"consumed": { "$type": "object" }
|
||||
};
|
||||
|
||||
let result = Transaction::find_partial(filter, json!({}), None, None)
|
||||
|
@ -184,6 +198,23 @@ impl Variant {
|
|||
.await
|
||||
}
|
||||
|
||||
pub async fn price_history_by_origin(&self, origin: &str) -> Vec<Price> {
|
||||
Transaction::find(
|
||||
doc! {
|
||||
"item": &self.item,
|
||||
"variant": &self.variant,
|
||||
"origin": origin
|
||||
},
|
||||
None,
|
||||
Some(sort_by_timestamp()),
|
||||
)
|
||||
.await
|
||||
.unwrap()
|
||||
.into_iter()
|
||||
.map(|x| x.price)
|
||||
.collect()
|
||||
}
|
||||
|
||||
pub async fn get_latest_price(&self, origin: Option<String>) -> Price {
|
||||
let mut filter = doc! {
|
||||
"item": &self.item,
|
||||
|
@ -219,7 +250,9 @@ impl Variant {
|
|||
json!({
|
||||
"item": self.item,
|
||||
"variant": self.variant,
|
||||
"name": self.name
|
||||
"name": self.name,
|
||||
"min": self.min,
|
||||
"expiry": self.expiry
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue