httpd: Add more revision properties to patch

For display purposes in the web client, we add with this commit the
some needed properties to the revisions in the patch endpoint.

Signed-off-by: Sebastian Martinez <me@sebastinez.dev>
This commit is contained in:
Sebastian Martinez 2023-03-20 17:18:44 +01:00 committed by Alexis Sellier
parent b6c1560a0a
commit 73221e43d7
No known key found for this signature in database
3 changed files with 23 additions and 3 deletions

View File

@ -115,6 +115,10 @@ pub(crate) fn patch(id: PatchId, patch: Patch) -> Value {
json!({
"id": id,
"description": rev.description(),
"base": rev.base,
"oid": rev.oid,
"merges": rev.merges().collect::<Vec<_>>(),
"discussions": rev.discussion.comments().collect::<Comments>(),
"timestamp": rev.timestamp,
"reviews": rev.reviews().collect::<Vec<_>>(),
})

View File

@ -1335,6 +1335,10 @@ mod routes {
{
"id": PATCH_ID,
"description": "",
"base": HEAD_1,
"oid": HEAD,
"merges": [],
"discussions": [],
"timestamp": 1671125284,
"reviews": [],
}
@ -1363,6 +1367,10 @@ mod routes {
{
"id": PATCH_ID,
"description": "",
"base": HEAD_1,
"oid": HEAD,
"merges": [],
"discussions": [],
"timestamp": 1671125284,
"reviews": [],
}
@ -1374,7 +1382,7 @@ mod routes {
#[tokio::test]
async fn test_projects_create_patches() {
const CREATED_PATCH_ID: &str = "54505091ff3561466cfbe83e7e23c21cb1bb8a17";
const CREATED_PATCH_ID: &str = "9170195973fb145b327b1f5cd728a6e46b3bb082";
let tmp = tempfile::tempdir().unwrap();
let ctx = test::contributor(tmp.path());
@ -1385,8 +1393,8 @@ mod routes {
let body = serde_json::to_vec(&json!({
"title": "Update README",
"description": "Do some changes to README",
"target": HEAD,
"oid": HEAD_1,
"target": HEAD_1,
"oid": HEAD,
"tags": [],
}))
.unwrap();
@ -1434,6 +1442,10 @@ mod routes {
{
"id": CREATED_PATCH_ID,
"description": "",
"base": HEAD_1,
"oid": HEAD,
"merges": [],
"discussions": [],
"timestamp": 1671125284,
"reviews": [],
}

View File

@ -393,6 +393,10 @@ impl Revision {
self.description.get()
}
pub fn merges(&self) -> impl Iterator<Item = &Merge> {
self.merges.iter().map(|m| m.get())
}
pub fn reviews(&self) -> impl DoubleEndedIterator<Item = (&PublicKey, &Review)> {
self.reviews.iter()
}