Add way to fetch team members (#89)

* Add way to fetch team members, fix files not being returned with version route

* Make it compile

* Fixes

* Use default error handling
This commit is contained in:
Geometrically
2020-10-21 12:30:35 -07:00
committed by GitHub
parent e966ef96e5
commit 1ff8c908b8
6 changed files with 105 additions and 208 deletions

View File

@@ -73,3 +73,38 @@ pub struct TeamMember {
pub name: String,
pub role: String,
}
impl TeamMember {
pub async fn get_from_team<'a, 'b, E>(
id: TeamId,
executor: E,
) -> Result<Vec<TeamMember>, super::DatabaseError>
where
E: sqlx::Executor<'a, Database = sqlx::Postgres>,
{
use futures::stream::TryStreamExt;
let team_members = sqlx::query!(
"
SELECT id, user_id, member_name, role
FROM team_members
WHERE team_id = $1
",
id as TeamId,
)
.fetch_many(executor)
.try_filter_map(|e| async {
Ok(e.right().map(|m| TeamMember {
id: TeamMemberId(m.id),
team_id: id,
user_id: UserId(m.user_id),
name: m.member_name,
role: m.role,
}))
})
.try_collect::<Vec<TeamMember>>()
.await?;
Ok(team_members)
}
}

View File

@@ -504,7 +504,7 @@ impl Version {
downloads: row.downloads,
release_channel: row.channel,
files: Vec::<QueryFile>::new(),
files,
loaders,
game_versions,
}))