You've already forked AstralRinth
forked from didirus/AstralRinth
Payouts finish (#470)
* Almost done * More work on midas * Finish payouts backend * Update Cargo.lock * Run fmt + prepare
This commit is contained in:
@@ -474,6 +474,17 @@ impl Project {
|
||||
.execute(&mut *transaction)
|
||||
.await?;
|
||||
|
||||
sqlx::query!(
|
||||
"
|
||||
UPDATE payouts_values
|
||||
SET mod_id = NULL
|
||||
WHERE (mod_id = $1)
|
||||
",
|
||||
id as ProjectId,
|
||||
)
|
||||
.execute(&mut *transaction)
|
||||
.await?;
|
||||
|
||||
sqlx::query!(
|
||||
"
|
||||
DELETE FROM mods
|
||||
@@ -968,6 +979,7 @@ impl Project {
|
||||
.await
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct QueryProject {
|
||||
pub inner: Project,
|
||||
|
||||
@@ -2,6 +2,7 @@ use super::ids::*;
|
||||
use crate::database::models::User;
|
||||
use crate::models::teams::Permissions;
|
||||
use crate::models::users::Badges;
|
||||
use rust_decimal::Decimal;
|
||||
|
||||
pub struct TeamBuilder {
|
||||
pub members: Vec<TeamMemberBuilder>,
|
||||
@@ -11,7 +12,7 @@ pub struct TeamMemberBuilder {
|
||||
pub role: String,
|
||||
pub permissions: Permissions,
|
||||
pub accepted: bool,
|
||||
pub payouts_split: f32,
|
||||
pub payouts_split: Decimal,
|
||||
}
|
||||
|
||||
impl TeamBuilder {
|
||||
@@ -81,7 +82,7 @@ pub struct TeamMember {
|
||||
pub role: String,
|
||||
pub permissions: Permissions,
|
||||
pub accepted: bool,
|
||||
pub payouts_split: f32,
|
||||
pub payouts_split: Decimal,
|
||||
}
|
||||
|
||||
/// A member of a team
|
||||
@@ -93,7 +94,7 @@ pub struct QueryTeamMember {
|
||||
pub role: String,
|
||||
pub permissions: Permissions,
|
||||
pub accepted: bool,
|
||||
pub payouts_split: f32,
|
||||
pub payouts_split: Decimal,
|
||||
}
|
||||
|
||||
impl TeamMember {
|
||||
@@ -157,7 +158,7 @@ impl TeamMember {
|
||||
SELECT tm.id id, tm.role member_role, tm.permissions permissions, tm.accepted accepted, tm.payouts_split payouts_split,
|
||||
u.id user_id, u.github_id github_id, u.name user_name, u.email email,
|
||||
u.avatar_url avatar_url, u.username username, u.bio bio,
|
||||
u.created created, u.role user_role, u.badges badges
|
||||
u.created created, u.role user_role, u.badges badges, u.paypal_email paypal_email
|
||||
FROM team_members tm
|
||||
INNER JOIN users u ON u.id = tm.user_id
|
||||
WHERE tm.team_id = $1
|
||||
@@ -185,6 +186,7 @@ impl TeamMember {
|
||||
created: m.created,
|
||||
role: m.user_role,
|
||||
badges: Badges::from_bits(m.badges as u64).unwrap_or_default(),
|
||||
paypal_email: m.paypal_email
|
||||
},
|
||||
payouts_split: m.payouts_split
|
||||
})))
|
||||
@@ -219,7 +221,7 @@ impl TeamMember {
|
||||
SELECT tm.id id, tm.team_id team_id, tm.role member_role, tm.permissions permissions, tm.accepted accepted, tm.payouts_split payouts_split,
|
||||
u.id user_id, u.github_id github_id, u.name user_name, u.email email,
|
||||
u.avatar_url avatar_url, u.username username, u.bio bio,
|
||||
u.created created, u.role user_role, u.badges badges
|
||||
u.created created, u.role user_role, u.badges badges, u.paypal_email paypal_email
|
||||
FROM team_members tm
|
||||
INNER JOIN users u ON u.id = tm.user_id
|
||||
WHERE tm.team_id = ANY($1)
|
||||
@@ -248,6 +250,7 @@ impl TeamMember {
|
||||
created: m.created,
|
||||
role: m.user_role,
|
||||
badges: Badges::from_bits(m.badges as u64).unwrap_or_default(),
|
||||
paypal_email: m.paypal_email
|
||||
},
|
||||
payouts_split: m.payouts_split
|
||||
})))
|
||||
@@ -540,7 +543,7 @@ impl TeamMember {
|
||||
new_permissions: Option<Permissions>,
|
||||
new_role: Option<String>,
|
||||
new_accepted: Option<bool>,
|
||||
new_payouts_split: Option<f32>,
|
||||
new_payouts_split: Option<Decimal>,
|
||||
transaction: &mut sqlx::Transaction<'_, sqlx::Postgres>,
|
||||
) -> Result<(), super::DatabaseError> {
|
||||
if let Some(permissions) = new_permissions {
|
||||
|
||||
@@ -13,6 +13,7 @@ pub struct User {
|
||||
pub created: DateTime<Utc>,
|
||||
pub role: String,
|
||||
pub badges: Badges,
|
||||
pub paypal_email: Option<String>,
|
||||
}
|
||||
|
||||
impl User {
|
||||
@@ -56,7 +57,7 @@ impl User {
|
||||
"
|
||||
SELECT u.github_id, u.name, u.email,
|
||||
u.avatar_url, u.username, u.bio,
|
||||
u.created, u.role, u.badges
|
||||
u.created, u.role, u.badges, u.paypal_email
|
||||
FROM users u
|
||||
WHERE u.id = $1
|
||||
",
|
||||
@@ -78,6 +79,7 @@ impl User {
|
||||
role: row.role,
|
||||
badges: Badges::from_bits(row.badges as u64)
|
||||
.unwrap_or_default(),
|
||||
paypal_email: row.paypal_email,
|
||||
}))
|
||||
} else {
|
||||
Ok(None)
|
||||
@@ -95,7 +97,7 @@ impl User {
|
||||
"
|
||||
SELECT u.id, u.name, u.email,
|
||||
u.avatar_url, u.username, u.bio,
|
||||
u.created, u.role, u.badges
|
||||
u.created, u.role, u.badges, u.paypal_email
|
||||
FROM users u
|
||||
WHERE u.github_id = $1
|
||||
",
|
||||
@@ -117,6 +119,7 @@ impl User {
|
||||
role: row.role,
|
||||
badges: Badges::from_bits(row.badges as u64)
|
||||
.unwrap_or_default(),
|
||||
paypal_email: row.paypal_email,
|
||||
}))
|
||||
} else {
|
||||
Ok(None)
|
||||
@@ -134,7 +137,7 @@ impl User {
|
||||
"
|
||||
SELECT u.id, u.github_id, u.name, u.email,
|
||||
u.avatar_url, u.username, u.bio,
|
||||
u.created, u.role, u.badges
|
||||
u.created, u.role, u.badges, u.paypal_email
|
||||
FROM users u
|
||||
WHERE LOWER(u.username) = LOWER($1)
|
||||
",
|
||||
@@ -156,6 +159,7 @@ impl User {
|
||||
role: row.role,
|
||||
badges: Badges::from_bits(row.badges as u64)
|
||||
.unwrap_or_default(),
|
||||
paypal_email: row.paypal_email,
|
||||
}))
|
||||
} else {
|
||||
Ok(None)
|
||||
@@ -177,7 +181,7 @@ impl User {
|
||||
"
|
||||
SELECT u.id, u.github_id, u.name, u.email,
|
||||
u.avatar_url, u.username, u.bio,
|
||||
u.created, u.role, u.badges
|
||||
u.created, u.role, u.badges, u.paypal_email
|
||||
FROM users u
|
||||
WHERE u.id = ANY($1)
|
||||
",
|
||||
@@ -196,6 +200,7 @@ impl User {
|
||||
created: u.created,
|
||||
role: u.role,
|
||||
badges: Badges::from_bits(u.badges as u64).unwrap_or_default(),
|
||||
paypal_email: u.paypal_email,
|
||||
}))
|
||||
})
|
||||
.try_collect::<Vec<User>>()
|
||||
@@ -352,6 +357,16 @@ impl User {
|
||||
.execute(&mut *transaction)
|
||||
.await?;
|
||||
|
||||
sqlx::query!(
|
||||
"
|
||||
DELETE FROM payouts_values
|
||||
WHERE user_id = $1
|
||||
",
|
||||
id as UserId,
|
||||
)
|
||||
.execute(&mut *transaction)
|
||||
.await?;
|
||||
|
||||
sqlx::query!(
|
||||
"
|
||||
DELETE FROM users
|
||||
|
||||
Reference in New Issue
Block a user