pub mod create_policy; pub mod delete_policy; pub mod get_policy; pub mod list_policies; pub mod update_policy; use axum::extract::{FromRequestParts, Path}; use axum::http::request::Parts; use serde::Deserialize; use utoipa::IntoParams; use uuid::Uuid; use crate::errors::ApiError; #[derive(Debug, Clone, Deserialize, IntoParams)] pub struct PolicyPath { pub space_name: String, pub repo_name: String, pub policy_id: Uuid, } impl FromRequestParts for PolicyPath where S: Send + Sync, { type Rejection = ApiError; async fn from_request_parts(parts: &mut Parts, state: &S) -> Result { Path::::from_request_parts(parts, state) .await .map(|Path(p)| p) .map_err(|_| ApiError::bad_request()) } }