You've already forked AstralRinth
forked from didirus/AstralRinth
Support unenrolling from payouts (#476)
This commit is contained in:
@@ -3576,6 +3576,21 @@
|
|||||||
},
|
},
|
||||||
"query": "\n DELETE FROM team_members\n WHERE (team_id = $1 AND user_id = $2 AND NOT role = $3)\n "
|
"query": "\n DELETE FROM team_members\n WHERE (team_id = $1 AND user_id = $2 AND NOT role = $3)\n "
|
||||||
},
|
},
|
||||||
|
"8cbd74dad7a21128d99fd32b430c2e0427480f910e1f125ff56b893c67a6e8a4": {
|
||||||
|
"describe": {
|
||||||
|
"columns": [],
|
||||||
|
"nullable": [],
|
||||||
|
"parameters": {
|
||||||
|
"Left": [
|
||||||
|
"Varchar",
|
||||||
|
"Varchar",
|
||||||
|
"Varchar",
|
||||||
|
"Int8"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"query": "\n UPDATE users\n SET payout_wallet = $1, payout_wallet_type = $2, payout_address = $3\n WHERE (id = $4)\n "
|
||||||
|
},
|
||||||
"8ced4b7a1c4f944b918d2d2eefc8007a3fb9565021ca8c44608caccbe1ab9674": {
|
"8ced4b7a1c4f944b918d2d2eefc8007a3fb9565021ca8c44608caccbe1ab9674": {
|
||||||
"describe": {
|
"describe": {
|
||||||
"columns": [
|
"columns": [
|
||||||
@@ -5032,21 +5047,6 @@
|
|||||||
},
|
},
|
||||||
"query": "\n UPDATE mods\n SET license_url = $1\n WHERE (id = $2)\n "
|
"query": "\n UPDATE mods\n SET license_url = $1\n WHERE (id = $2)\n "
|
||||||
},
|
},
|
||||||
"c11a0f7ca3959ede1655c4f244cfe4461701218d26e28152306bca5c46f1abd5": {
|
|
||||||
"describe": {
|
|
||||||
"columns": [],
|
|
||||||
"nullable": [],
|
|
||||||
"parameters": {
|
|
||||||
"Left": [
|
|
||||||
"Varchar",
|
|
||||||
"Varchar",
|
|
||||||
"Varchar",
|
|
||||||
"Int8"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"query": "\n UPDATE users\n SET payout_wallet = $1, payout_wallet_type = $2, payout_address = $3\n WHERE (id = $4)\n "
|
|
||||||
},
|
|
||||||
"c15534b7259e2b138c6f041bf2a9f4c77bea060a9bce6f2a829a2d7594dddd3a": {
|
"c15534b7259e2b138c6f041bf2a9f4c77bea060a9bce6f2a829a2d7594dddd3a": {
|
||||||
"describe": {
|
"describe": {
|
||||||
"columns": [
|
"columns": [
|
||||||
@@ -5224,6 +5224,18 @@
|
|||||||
},
|
},
|
||||||
"query": "SELECT id FROM versions WHERE mod_id = $1 AND (version_number = $2 OR id = $3) ORDER BY date_published ASC"
|
"query": "SELECT id FROM versions WHERE mod_id = $1 AND (version_number = $2 OR id = $3) ORDER BY date_published ASC"
|
||||||
},
|
},
|
||||||
|
"c4b167ec7452cc92be0e33f7e4f3908f0c4109291511c94909e9105fc62a432f": {
|
||||||
|
"describe": {
|
||||||
|
"columns": [],
|
||||||
|
"nullable": [],
|
||||||
|
"parameters": {
|
||||||
|
"Left": [
|
||||||
|
"Int8"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"query": "\n UPDATE users\n SET payout_wallet = NULL, payout_wallet_type = NULL, payout_address = NULL\n WHERE (id = $1)\n "
|
||||||
|
},
|
||||||
"c545a74e902c5c63bca1057b76e94b9547ee21fadbc61964f45837915d5f4608": {
|
"c545a74e902c5c63bca1057b76e94b9547ee21fadbc61964f45837915d5f4608": {
|
||||||
"describe": {
|
"describe": {
|
||||||
"columns": [],
|
"columns": [],
|
||||||
|
|||||||
@@ -160,8 +160,13 @@ pub struct EditUser {
|
|||||||
pub bio: Option<Option<String>>,
|
pub bio: Option<Option<String>>,
|
||||||
pub role: Option<Role>,
|
pub role: Option<Role>,
|
||||||
pub badges: Option<Badges>,
|
pub badges: Option<Badges>,
|
||||||
|
#[serde(
|
||||||
|
default,
|
||||||
|
skip_serializing_if = "Option::is_none",
|
||||||
|
with = "::serde_with::rust::double_option"
|
||||||
|
)]
|
||||||
#[validate]
|
#[validate]
|
||||||
pub payout_data: Option<EditPayoutData>,
|
pub payout_data: Option<Option<EditPayoutData>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Serialize, Deserialize, Validate)]
|
#[derive(Serialize, Deserialize, Validate)]
|
||||||
@@ -315,42 +320,56 @@ pub async fn user_edit(
|
|||||||
}
|
}
|
||||||
|
|
||||||
if let Some(payout_data) = &new_user.payout_data {
|
if let Some(payout_data) = &new_user.payout_data {
|
||||||
if payout_data.payout_wallet_type == RecipientType::UserHandle
|
if let Some(payout_data) = payout_data {
|
||||||
&& payout_data.payout_wallet == RecipientWallet::Paypal
|
if payout_data.payout_wallet_type
|
||||||
{
|
== RecipientType::UserHandle
|
||||||
return Err(ApiError::InvalidInput(
|
&& payout_data.payout_wallet == RecipientWallet::Paypal
|
||||||
"You cannot use a paypal wallet with a user handle!"
|
{
|
||||||
.to_string(),
|
return Err(ApiError::InvalidInput(
|
||||||
));
|
"You cannot use a paypal wallet with a user handle!"
|
||||||
}
|
.to_string(),
|
||||||
|
));
|
||||||
if !match payout_data.payout_wallet_type {
|
|
||||||
RecipientType::Email => {
|
|
||||||
validator::validate_email(&payout_data.payout_address)
|
|
||||||
}
|
}
|
||||||
RecipientType::Phone => {
|
|
||||||
validator::validate_phone(&payout_data.payout_address)
|
|
||||||
}
|
|
||||||
RecipientType::UserHandle => true,
|
|
||||||
} {
|
|
||||||
return Err(ApiError::InvalidInput(
|
|
||||||
"Invalid wallet specified!".to_string(),
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
sqlx::query!(
|
if !match payout_data.payout_wallet_type {
|
||||||
"
|
RecipientType::Email => validator::validate_email(
|
||||||
UPDATE users
|
&payout_data.payout_address,
|
||||||
SET payout_wallet = $1, payout_wallet_type = $2, payout_address = $3
|
),
|
||||||
WHERE (id = $4)
|
RecipientType::Phone => validator::validate_phone(
|
||||||
",
|
&payout_data.payout_address,
|
||||||
payout_data.payout_wallet.as_str(),
|
),
|
||||||
payout_data.payout_wallet_type.as_str(),
|
RecipientType::UserHandle => true,
|
||||||
payout_data.payout_address,
|
} {
|
||||||
id as crate::database::models::ids::UserId,
|
return Err(ApiError::InvalidInput(
|
||||||
)
|
"Invalid wallet specified!".to_string(),
|
||||||
.execute(&mut *transaction)
|
));
|
||||||
.await?;
|
}
|
||||||
|
|
||||||
|
sqlx::query!(
|
||||||
|
"
|
||||||
|
UPDATE users
|
||||||
|
SET payout_wallet = $1, payout_wallet_type = $2, payout_address = $3
|
||||||
|
WHERE (id = $4)
|
||||||
|
",
|
||||||
|
payout_data.payout_wallet.as_str(),
|
||||||
|
payout_data.payout_wallet_type.as_str(),
|
||||||
|
payout_data.payout_address,
|
||||||
|
id as crate::database::models::ids::UserId,
|
||||||
|
)
|
||||||
|
.execute(&mut *transaction)
|
||||||
|
.await?;
|
||||||
|
} else {
|
||||||
|
sqlx::query!(
|
||||||
|
"
|
||||||
|
UPDATE users
|
||||||
|
SET payout_wallet = NULL, payout_wallet_type = NULL, payout_address = NULL
|
||||||
|
WHERE (id = $1)
|
||||||
|
",
|
||||||
|
id as crate::database::models::ids::UserId,
|
||||||
|
)
|
||||||
|
.execute(&mut *transaction)
|
||||||
|
.await?;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
transaction.commit().await?;
|
transaction.commit().await?;
|
||||||
|
|||||||
Reference in New Issue
Block a user