Add 'accepted' field to TeamMember

This commit is contained in:
Geometrically
2020-12-26 22:49:07 -07:00
parent 4beace1bb0
commit bd5d84abcd
5 changed files with 63 additions and 53 deletions

View File

@@ -747,6 +747,50 @@
"nullable": [] "nullable": []
} }
}, },
"3831c1b321e47690f1f54597506a0d43362eda9540c56acb19c06532bba50b01": {
"query": "\n SELECT id, user_id, role, permissions, accepted\n FROM team_members\n WHERE team_id = $1\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "id",
"type_info": "Int8"
},
{
"ordinal": 1,
"name": "user_id",
"type_info": "Int8"
},
{
"ordinal": 2,
"name": "role",
"type_info": "Varchar"
},
{
"ordinal": 3,
"name": "permissions",
"type_info": "Int8"
},
{
"ordinal": 4,
"name": "accepted",
"type_info": "Bool"
}
],
"parameters": {
"Left": [
"Int8"
]
},
"nullable": [
false,
false,
false,
false,
false
]
}
},
"389088b3ccff3a3c970aba3deef8831cca140b74ffc74e43a1162a9021428820": { "389088b3ccff3a3c970aba3deef8831cca140b74ffc74e43a1162a9021428820": {
"query": "\n SELECT f.id id, f.version_id version_id, f.filename filename, v.version_number version_number, v.mod_id mod_id FROM hashes h\n INNER JOIN files f ON h.file_id = f.id\n INNER JOIN versions v ON v.id = f.version_id\n WHERE h.algorithm = $2 AND h.hash = $1\n ", "query": "\n SELECT f.id id, f.version_id version_id, f.filename filename, v.version_number version_number, v.mod_id mod_id FROM hashes h\n INNER JOIN files f ON h.file_id = f.id\n INNER JOIN versions v ON v.id = f.version_id\n WHERE h.algorithm = $2 AND h.hash = $1\n ",
"describe": { "describe": {
@@ -2122,50 +2166,6 @@
] ]
} }
}, },
"9f93c94dd5d4fe4fad9c3021099a84b8e0c8cd2f0c9458063453f2416010657c": {
"query": "\n SELECT id, user_id, role, permissions, accepted\n FROM team_members\n WHERE (team_id = $1 AND accepted = TRUE)\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "id",
"type_info": "Int8"
},
{
"ordinal": 1,
"name": "user_id",
"type_info": "Int8"
},
{
"ordinal": 2,
"name": "role",
"type_info": "Varchar"
},
{
"ordinal": 3,
"name": "permissions",
"type_info": "Int8"
},
{
"ordinal": 4,
"name": "accepted",
"type_info": "Bool"
}
],
"parameters": {
"Left": [
"Int8"
]
},
"nullable": [
false,
false,
false,
false,
false
]
}
},
"a28188c4840d0f3449379b3bba6b3c4af9483e01f50fd56785317398a59881ca": { "a28188c4840d0f3449379b3bba6b3c4af9483e01f50fd56785317398a59881ca": {
"query": "\n SELECT files.id, files.url, files.filename, files.is_primary FROM files\n WHERE files.version_id = $1\n ", "query": "\n SELECT files.id, files.url, files.filename, files.is_primary FROM files\n WHERE files.version_id = $1\n ",
"describe": { "describe": {

View File

@@ -93,7 +93,7 @@ impl TeamMember {
" "
SELECT id, user_id, role, permissions, accepted SELECT id, user_id, role, permissions, accepted
FROM team_members FROM team_members
WHERE (team_id = $1 AND accepted = TRUE) WHERE team_id = $1
", ",
id as TeamId, id as TeamId,
) )

View File

@@ -51,4 +51,6 @@ pub struct TeamMember {
pub role: String, pub role: String,
/// A bitset containing the user's permissions in this team /// A bitset containing the user's permissions in this team
pub permissions: Option<Permissions>, pub permissions: Option<Permissions>,
/// Whether the user has joined the team or is just invited to it
pub accepted: bool,
} }

View File

@@ -30,6 +30,7 @@ pub async fn team_members_get(
user_id: data.user_id.into(), user_id: data.user_id.into(),
role: data.role, role: data.role,
permissions: Some(data.permissions), permissions: Some(data.permissions),
accepted: data.accepted,
}) })
.collect(); .collect();
@@ -37,14 +38,20 @@ pub async fn team_members_get(
} }
} }
let team_members: Vec<crate::models::teams::TeamMember> = members_data let mut team_members: Vec<crate::models::teams::TeamMember> = Vec::new();
.into_iter()
.map(|data| crate::models::teams::TeamMember { for team_member in members_data {
user_id: data.user_id.into(), if team_member.accepted {
role: data.role, team_members.push(
permissions: None, crate::models::teams::TeamMember {
}) user_id: team_member.user_id.into(),
.collect(); role: team_member.role,
permissions: None,
accepted: team_member.accepted
}
)
}
}
Ok(HttpResponse::Ok().json(team_members)) Ok(HttpResponse::Ok().json(team_members))
} }

View File

@@ -182,6 +182,7 @@ pub async fn teams(
} else { } else {
None None
}, },
accepted: data.accepted
}) })
.collect(); .collect();