FlameAnvil Project Sync (#481)

* FlameAnvil Project Sync

* Perm fixes

* Fix compile

* Fix clippy + run prepare
This commit is contained in:
Geometrically
2022-11-20 19:50:14 -07:00
committed by GitHub
parent 589761bfd9
commit f259d81249
23 changed files with 2501 additions and 1493 deletions

View File

@@ -167,6 +167,13 @@ pub struct EditUser {
)]
#[validate]
pub payout_data: Option<Option<EditPayoutData>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
with = "::serde_with::rust::double_option"
)]
#[validate(length(min = 1, max = 40), regex = "RE_URL_SAFE")]
pub flame_anvil_key: Option<Option<String>>,
}
#[derive(Serialize, Deserialize, Validate)]
@@ -216,10 +223,10 @@ pub async fn user_edit(
{
sqlx::query!(
"
UPDATE users
SET username = $1
WHERE (id = $2)
",
UPDATE users
SET username = $1
WHERE (id = $2)
",
username,
id as crate::database::models::ids::UserId,
)
@@ -388,6 +395,33 @@ pub async fn user_edit(
}
}
if let Some(flame_anvil_key) = &new_user.flame_anvil_key {
if flame_anvil_key.is_none() {
sqlx::query!(
"
UPDATE mods
SET flame_anvil_user = NULL
WHERE (flame_anvil_user = $1)
",
id as crate::database::models::ids::UserId,
)
.execute(&mut *transaction)
.await?;
}
sqlx::query!(
"
UPDATE users
SET flame_anvil_key = $1
WHERE (id = $2)
",
flame_anvil_key.as_deref(),
id as crate::database::models::ids::UserId,
)
.execute(&mut *transaction)
.await?;
}
transaction.commit().await?;
Ok(HttpResponse::NoContent().body(""))
} else {