1
0

Payouts finish (#470)

* Almost done

* More work on midas

* Finish payouts backend

* Update Cargo.lock

* Run fmt + prepare
This commit is contained in:
Geometrically
2022-10-30 23:34:56 -07:00
committed by GitHub
parent 6e72be54cb
commit 2ca6e67b37
31 changed files with 2267 additions and 1050 deletions

View File

@@ -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 {