builder and repo summary

This commit is contained in:
mbecker20
2023-07-26 00:59:20 -04:00
parent 14edb4f913
commit 4f6a9545e9
6 changed files with 45 additions and 5 deletions

View File

@@ -54,6 +54,24 @@ impl Resolve<GetBuildersSummary, RequestUser> for State {
GetBuildersSummary {}: GetBuildersSummary,
user: RequestUser,
) -> anyhow::Result<GetBuildersSummaryResponse> {
todo!()
let query = if user.is_admin {
None
} else {
let query = doc! {
format!("permissions.{}", user.id): { "$in": ["read", "execute", "update"] }
};
Some(query)
};
let total = self
.db
.builders
.collection
.count_documents(query, None)
.await
.context("failed to count all build documents")?;
let res = GetBuildersSummaryResponse {
total: total as u32,
};
Ok(res)
}
}

View File

@@ -77,6 +77,24 @@ impl Resolve<GetReposSummary, RequestUser> for State {
GetReposSummary {}: GetReposSummary,
user: RequestUser,
) -> anyhow::Result<GetReposSummaryResponse> {
todo!()
let query = if user.is_admin {
None
} else {
let query = doc! {
format!("permissions.{}", user.id): { "$in": ["read", "execute", "update"] }
};
Some(query)
};
let total = self
.db
.repos
.collection
.count_documents(query, None)
.await
.context("failed to count all build documents")?;
let res = GetReposSummaryResponse {
total: total as u32,
};
Ok(res)
}
}

View File

View File

@@ -2,7 +2,7 @@ use resolver_api::derive::Request;
use serde::{Deserialize, Serialize};
use typeshare::typeshare;
use crate::{entities::builder::Builder, MongoDocument, I64};
use crate::{entities::builder::Builder, MongoDocument};
//
@@ -32,5 +32,5 @@ pub struct GetBuildersSummary {}
#[typeshare]
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct GetBuildersSummaryResponse {
pub total: I64
pub total: u32,
}

View File

@@ -10,6 +10,7 @@ mod search;
mod server;
mod tag;
mod update;
mod alerter;
pub use build::*;
pub use builder::*;
@@ -19,6 +20,7 @@ pub use search::*;
pub use server::*;
pub use tag::*;
pub use update::*;
pub use alerter::*;
use crate::entities::user::User;

View File

@@ -52,4 +52,6 @@ pub struct GetReposSummary {}
#[typeshare]
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct GetReposSummaryResponse {}
pub struct GetReposSummaryResponse {
pub total: u32
}