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