Radish alpha
r
Radicle web interface
Radicle
Git (anonymous pull)
Log in to clone via SSH
httpd: Add issue and patch counts
Sebastian Martinez committed 3 years ago
commit 6793b8e7d3e036f41717dcee8ff5934c639a2c62
parent e7de186e0eb1a1504597c7e79cd3422c1ea33139
3 files changed +36 -14
modified radicle-httpd/src/api.rs
@@ -51,8 +51,8 @@ impl Context {
        let doc = repo.identity_of(self.profile.id())?;
        let payload = doc.project()?;
        let delegates = doc.delegates;
-
        let issues = (Issues::open(self.profile.public_key, &repo)?).count()?;
-
        let patches = (Patches::open(self.profile.public_key, &repo)?).count()?;
+
        let issues = Issues::open(self.profile.public_key, &repo)?.counts()?;
+
        let patches = Patches::open(self.profile.public_key, &repo)?.counts()?;

        Ok(project::Info {
            payload,
@@ -143,6 +143,7 @@ mod project {
    use nonempty::NonEmpty;
    use serde::Serialize;

+
    use radicle::cob;
    use radicle::git::Oid;
    use radicle::identity::project::Project;
    use radicle::identity::Id;
@@ -157,8 +158,8 @@ mod project {
        pub payload: Project,
        pub delegates: NonEmpty<Did>,
        pub head: Oid,
-
        pub patches: usize,
-
        pub issues: usize,
+
        pub patches: cob::patch::PatchCounts,
+
        pub issues: cob::issue::IssueCounts,
        pub id: Id,
    }
}
modified radicle-httpd/src/api/v1/delegates.rs
@@ -49,9 +49,9 @@ async fn delegates_projects_handler(
            }

            let Ok(issues) = Issues::open(ctx.profile.public_key, &repo) else { return None };
-
            let Ok(issues) = (*issues).count() else { return None };
+
            let Ok(issues) = issues.counts() else { return None };
            let Ok(patches) = Patches::open(ctx.profile.public_key, &repo) else { return None };
-
            let Ok(patches) = (*patches).count() else { return None };
+
            let Ok(patches) = patches.counts() else { return None };

            Some(Info {
                payload,
@@ -96,8 +96,15 @@ mod routes {
                "defaultBranch": "master",
                "delegates": ["did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"],
                "head": HEAD,
-
                "patches": 1,
-
                "issues": 1,
+
                "patches": {
+
                  "proposed": 1,
+
                  "draft": 0,
+
                  "archived": 0,
+
                },
+
                "issues": {
+
                  "open": 1,
+
                  "closed": 0,
+
                },
                "id": "rad:z4FucBZHZMCsxTyQE1dfE2YR59Qbp"
              }
            ])
modified radicle-httpd/src/api/v1/projects.rs
@@ -81,9 +81,9 @@ async fn project_root_handler(
            let Ok(payload) = repo.project_of(ctx.profile.id()) else { return None };
            let Ok(doc) = repo.identity_of(ctx.profile.id()) else { return None };
            let Ok(issues) = Issues::open(ctx.profile.public_key, &repo) else { return None };
-
            let Ok(issues) = (*issues).count() else { return None };
+
            let Ok(issues) = issues.counts() else { return None };
            let Ok(patches) = Patches::open(ctx.profile.public_key, &repo) else { return None };
-
            let Ok(patches) = (*patches).count() else { return None };
+
            let Ok(patches) = patches.counts() else { return None };
            let delegates = doc.delegates;

            Some(Info {
@@ -583,8 +583,15 @@ mod routes {
                "defaultBranch": "master",
                "delegates": ["did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"],
                "head": HEAD,
-
                "patches": 1,
-
                "issues": 1,
+
                "patches": {
+
                  "proposed": 1,
+
                  "draft": 0,
+
                  "archived": 0,
+
                },
+
                "issues": {
+
                  "open": 1,
+
                  "closed": 0,
+
                },
                "id": "rad:z4FucBZHZMCsxTyQE1dfE2YR59Qbp"
              }
            ])
@@ -606,8 +613,15 @@ mod routes {
               "defaultBranch": "master",
               "delegates": ["did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"],
               "head": HEAD,
-
               "patches": 1,
-
               "issues": 1,
+
               "patches": {
+
                 "proposed": 1,
+
                 "draft": 0,
+
                 "archived": 0,
+
               },
+
               "issues": {
+
                 "open": 1,
+
                 "closed": 0,
+
               },
               "id": "rad:z4FucBZHZMCsxTyQE1dfE2YR59Qbp"
            })
        );