Support specifying a region when creating servers (#3709)

* Support specifying a region when creating servers

* Remove hardcoded default server region
This commit is contained in:
François-Xavier Talbot
2025-05-26 17:21:52 -04:00
committed by GitHub
parent 74cf3f076e
commit f52d020a3c

View File

@@ -997,6 +997,7 @@ pub enum ChargeRequestType {
pub enum PaymentRequestMetadata { pub enum PaymentRequestMetadata {
Pyro { Pyro {
server_name: Option<String>, server_name: Option<String>,
server_region: Option<String>,
source: serde_json::Value, source: serde_json::Value,
}, },
} }
@@ -1789,15 +1790,20 @@ pub async fn stripe_webhook(
.await? .await?
.error_for_status()?; .error_for_status()?;
} else { } else {
let (server_name, source) = if let Some( let (server_name, server_region, source) =
if let Some(
PaymentRequestMetadata::Pyro { PaymentRequestMetadata::Pyro {
ref server_name, ref server_name,
ref server_region,
ref source, ref source,
}, },
) = ) = metadata.payment_metadata
metadata.payment_metadata
{ {
(server_name.clone(), source.clone()) (
server_name.clone(),
server_region.clone(),
source.clone(),
)
} else { } else {
// Create a server with the latest version of Minecraft // Create a server with the latest version of Minecraft
let minecraft_versions = crate::database::models::legacy_loader_fields::MinecraftGameVersion::list( let minecraft_versions = crate::database::models::legacy_loader_fields::MinecraftGameVersion::list(
@@ -1808,6 +1814,7 @@ pub async fn stripe_webhook(
).await?; ).await?;
( (
None,
None, None,
serde_json::json!({ serde_json::json!({
"loader": "Vanilla", "loader": "Vanilla",
@@ -1845,6 +1852,7 @@ pub async fn stripe_webhook(
"swap_mb": swap, "swap_mb": swap,
"storage_mb": storage, "storage_mb": storage,
}, },
"region": server_region,
"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,