Update servers route (#3032)

This commit is contained in:
Geometrically 2024-12-16 17:34:20 -07:00 committed by GitHub
parent fee8d6c34e
commit 7e8ceadfd4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 18 additions and 6 deletions

View File

@ -1,6 +1,6 @@
{
"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": {
"columns": [
{
@ -54,5 +54,5 @@
true
]
},
"hash": "3c128a131baef8c8b18dd85a02aeca9658b604b3f3eab53fbac5fa0d95560a1c"
"hash": "0e722c03740252645acea786fae2e9a3e406cc58059d0c21dc95ed8b5d0634d9"
}

View File

@ -115,6 +115,7 @@ impl UserSubscriptionItem {
INNER JOIN products_prices pp ON us.price_id = pp.id
INNER JOIN products p ON p.metadata @> '{"type": "pyro"}'
WHERE $1::text IS NULL OR us.status = $1::text
GROUP BY us.id
"#,
status
)

View File

@ -898,14 +898,25 @@ pub async fn active_servers(
)
.await?;
#[derive(Serialize)]
struct ActiveServer {
pub user_id: crate::models::ids::UserId,
pub server_id: String,
pub interval: PriceDuration,
}
let server_ids = servers
.into_iter()
.filter_map(|x| {
x.metadata.map(|x| match x {
SubscriptionMetadata::Pyro { id } => id,
x.metadata.as_ref().map(|metadata| match metadata {
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))
}
@ -1747,7 +1758,7 @@ pub async fn stripe_webhook(
"source": source,
"payment_interval": metadata.charge_item.subscription_interval.map(|x| match x {
PriceDuration::Monthly => 1,
PriceDuration::Yearly => 3,
PriceDuration::Yearly => 12,
})
}))
.send()