Radish alpha
r
Radicle web interface
Radicle
Git (anonymous pull)
Log in to clone via SSH
httpd: Return correct count for `patches`
xphoniex committed 3 years ago
commit 7e9b9c944bf915c5b9cf0e4007164cb6a34a7322
parent 8b90dd674f1f8b1c00a9fa789e4bacb199053d87
4 files changed +14 -9
modified radicle-httpd/src/api.rs
@@ -13,6 +13,7 @@ use tokio::sync::RwLock;
use tower_http::cors::{self, CorsLayer};

use radicle::cob::issue::Issues;
+
use radicle::cob::patch::Patches;
use radicle::identity::Id;
use radicle::storage::{ReadRepository, ReadStorage};
use radicle::Profile;
@@ -52,13 +53,14 @@ impl Context {
        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()?;

        Ok(project::Info {
            payload,
            delegates,
            head,
            issues,
-
            patches: 0,
+
            patches,
            id,
        })
    }
modified radicle-httpd/src/api/v1/delegates.rs
@@ -4,6 +4,7 @@ use axum::routing::get;
use axum::{Json, Router};

use radicle::cob::issue::Issues;
+
use radicle::cob::patch::Patches;
use radicle::identity::Did;
use radicle::storage::{ReadRepository, ReadStorage};

@@ -49,13 +50,15 @@ 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(patches) = Patches::open(ctx.profile.public_key, &repo) else { return None };
+
            let Ok(patches) = (*patches).count() else { return None };

            Some(Info {
                payload,
                delegates,
                head,
                issues,
-
                patches: 0,
+
                patches,
                id,
            })
        })
@@ -93,7 +96,7 @@ mod routes {
                "defaultBranch": "master",
                "delegates": ["did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"],
                "head": HEAD,
-
                "patches": 0,
+
                "patches": 1,
                "issues": 1,
                "id": "rad:z4FucBZHZMCsxTyQE1dfE2YR59Qbp"
              }
modified radicle-httpd/src/api/v1/projects.rs
@@ -81,6 +81,8 @@ async fn project_root_handler(
            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(patches) = Patches::open(ctx.profile.public_key, &repo) else { return None };
+
            let Ok(patches) = (*patches).count() else { return None };
            let delegates = doc.delegates;

            Some(Info {
@@ -88,7 +90,7 @@ async fn project_root_handler(
                delegates,
                head,
                issues,
-
                patches: 0,
+
                patches,
                id,
            })
        })
@@ -579,7 +581,7 @@ mod routes {
                "defaultBranch": "master",
                "delegates": ["did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"],
                "head": HEAD,
-
                "patches": 0,
+
                "patches": 1,
                "issues": 1,
                "id": "rad:z4FucBZHZMCsxTyQE1dfE2YR59Qbp"
              }
@@ -602,7 +604,7 @@ mod routes {
               "defaultBranch": "master",
               "delegates": ["did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"],
               "head": HEAD,
-
               "patches": 0,
+
               "patches": 1,
               "issues": 1,
               "id": "rad:z4FucBZHZMCsxTyQE1dfE2YR59Qbp"
            })
modified radicle-httpd/src/lib.rs
@@ -16,9 +16,7 @@ use axum::body::Body;
use axum::body::{BoxBody, Bytes};
use axum::extract::{ConnectInfo, Path as AxumPath, RawQuery};
use axum::http::header::HeaderName;
-
use axum::http::HeaderMap;
-
use axum::http::{Method, StatusCode};
-
use axum::http::{Request, Response};
+
use axum::http::{HeaderMap, Method, Request, Response, StatusCode};
use axum::response::IntoResponse;
use axum::routing::any;
use axum::{Extension, Router};