Minor fixes to orderings and permission serialization (#102)

* Fix latest_version in search results

* Handle users with invalid permissions instead of skipping them

* Specify order of some queries, fix serialization of permissions

* Run sqlx prepare
This commit is contained in:
Aeledfyr
2020-11-10 10:27:36 -06:00
committed by GitHub
parent 578d673a4e
commit da911bfeb8
7 changed files with 83 additions and 18 deletions

View File

@@ -107,7 +107,7 @@ impl TeamMember {
if let Some(m) = e.right() {
let permissions = Permissions::from_bits(m.permissions as u64);
if let Some(perms) = permissions {
Ok(Some(TeamMember {
Ok(Some(Ok(TeamMember {
id: TeamMemberId(m.id),
team_id: id,
user_id: UserId(m.user_id),
@@ -115,17 +115,21 @@ impl TeamMember {
role: m.role,
permissions: perms,
accepted: m.accepted,
}))
})))
} else {
Ok(None)
Ok(Some(Err(super::DatabaseError::BitflagError)))
}
} else {
Ok(None)
}
})
.try_collect::<Vec<TeamMember>>()
.try_collect::<Vec<Result<TeamMember, super::DatabaseError>>>()
.await?;
let team_members = team_members
.into_iter()
.collect::<Result<Vec<TeamMember>, super::DatabaseError>>()?;
Ok(team_members)
}
@@ -152,7 +156,7 @@ impl TeamMember {
if let Some(m) = e.right() {
let permissions = Permissions::from_bits(m.permissions as u64);
if let Some(perms) = permissions {
Ok(Some(TeamMember {
Ok(Some(Ok(TeamMember {
id: TeamMemberId(m.id),
team_id: TeamId(m.team_id),
user_id: id,
@@ -160,17 +164,21 @@ impl TeamMember {
role: m.role,
permissions: perms,
accepted: m.accepted,
}))
})))
} else {
Ok(None)
Ok(Some(Err(super::DatabaseError::BitflagError)))
}
} else {
Ok(None)
}
})
.try_collect::<Vec<TeamMember>>()
.try_collect::<Vec<Result<TeamMember, super::DatabaseError>>>()
.await?;
let team_members = team_members
.into_iter()
.collect::<Result<Vec<TeamMember>, super::DatabaseError>>()?;
Ok(team_members)
}

View File

@@ -331,6 +331,7 @@ impl Version {
"
SELECT id FROM versions
WHERE mod_id = $1
ORDER BY date_published ASC
",
mod_id as ModId,
)