You've already forked AstralRinth
forked from didirus/AstralRinth
Update servers route (#3032)
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"db_name": "PostgreSQL",
|
"db_name": "PostgreSQL",
|
||||||
"query": "\n SELECT\n us.id, us.user_id, us.price_id, us.interval, us.created, us.status, us.metadata\n FROM users_subscriptions us\n \n INNER JOIN products_prices pp ON us.price_id = pp.id\n INNER JOIN products p ON p.metadata @> '{\"type\": \"pyro\"}'\n WHERE $1::text IS NULL OR us.status = $1::text\n ",
|
"query": "\n SELECT\n us.id, us.user_id, us.price_id, us.interval, us.created, us.status, us.metadata\n FROM users_subscriptions us\n \n INNER JOIN products_prices pp ON us.price_id = pp.id\n INNER JOIN products p ON p.metadata @> '{\"type\": \"pyro\"}'\n WHERE $1::text IS NULL OR us.status = $1::text\n GROUP BY us.id\n ",
|
||||||
"describe": {
|
"describe": {
|
||||||
"columns": [
|
"columns": [
|
||||||
{
|
{
|
||||||
@@ -54,5 +54,5 @@
|
|||||||
true
|
true
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"hash": "3c128a131baef8c8b18dd85a02aeca9658b604b3f3eab53fbac5fa0d95560a1c"
|
"hash": "0e722c03740252645acea786fae2e9a3e406cc58059d0c21dc95ed8b5d0634d9"
|
||||||
}
|
}
|
||||||
@@ -115,6 +115,7 @@ impl UserSubscriptionItem {
|
|||||||
INNER JOIN products_prices pp ON us.price_id = pp.id
|
INNER JOIN products_prices pp ON us.price_id = pp.id
|
||||||
INNER JOIN products p ON p.metadata @> '{"type": "pyro"}'
|
INNER JOIN products p ON p.metadata @> '{"type": "pyro"}'
|
||||||
WHERE $1::text IS NULL OR us.status = $1::text
|
WHERE $1::text IS NULL OR us.status = $1::text
|
||||||
|
GROUP BY us.id
|
||||||
"#,
|
"#,
|
||||||
status
|
status
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -898,14 +898,25 @@ pub async fn active_servers(
|
|||||||
)
|
)
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
|
#[derive(Serialize)]
|
||||||
|
struct ActiveServer {
|
||||||
|
pub user_id: crate::models::ids::UserId,
|
||||||
|
pub server_id: String,
|
||||||
|
pub interval: PriceDuration,
|
||||||
|
}
|
||||||
|
|
||||||
let server_ids = servers
|
let server_ids = servers
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.filter_map(|x| {
|
.filter_map(|x| {
|
||||||
x.metadata.map(|x| match x {
|
x.metadata.as_ref().map(|metadata| match metadata {
|
||||||
SubscriptionMetadata::Pyro { id } => id,
|
SubscriptionMetadata::Pyro { id } => ActiveServer {
|
||||||
|
user_id: x.user_id.into(),
|
||||||
|
server_id: id.clone(),
|
||||||
|
interval: x.interval,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.collect::<Vec<_>>();
|
.collect::<Vec<ActiveServer>>();
|
||||||
|
|
||||||
Ok(HttpResponse::Ok().json(server_ids))
|
Ok(HttpResponse::Ok().json(server_ids))
|
||||||
}
|
}
|
||||||
@@ -1747,7 +1758,7 @@ pub async fn stripe_webhook(
|
|||||||
"source": source,
|
"source": source,
|
||||||
"payment_interval": metadata.charge_item.subscription_interval.map(|x| match x {
|
"payment_interval": metadata.charge_item.subscription_interval.map(|x| match x {
|
||||||
PriceDuration::Monthly => 1,
|
PriceDuration::Monthly => 1,
|
||||||
PriceDuration::Yearly => 3,
|
PriceDuration::Yearly => 12,
|
||||||
})
|
})
|
||||||
}))
|
}))
|
||||||
.send()
|
.send()
|
||||||
|
|||||||
Reference in New Issue
Block a user