diff --git a/backend/sync_server/src/server/create_document.rs b/backend/sync_server/src/server/create_document.rs index 4f60654f..3dd5a89f 100644 --- a/backend/sync_server/src/server/create_document.rs +++ b/backend/sync_server/src/server/create_document.rs @@ -7,6 +7,8 @@ use axum_extra::{ headers::{authorization::Bearer, Authorization}, TypedHeader, }; +use schemars::JsonSchema; +use serde::Deserialize; use sync_lib::base64_to_bytes; use super::{auth::auth, requests::CreateDocumentVersion}; @@ -16,10 +18,16 @@ use crate::{ errors::{client_error, server_error, SyncServerError}, }; +// This is required for aide to infer the path parameter types and names +#[derive(Deserialize, JsonSchema)] +pub struct PathParams { + vault_id: VaultId, +} + #[axum::debug_handler] pub async fn create_document( TypedHeader(auth_header): TypedHeader>, - Path(vault_id): Path, + Path(PathParams { vault_id }): Path, State(state): State, Json(request): Json, ) -> Result, SyncServerError> { diff --git a/backend/sync_server/src/server/delete_document.rs b/backend/sync_server/src/server/delete_document.rs index f9cd0a32..54922f07 100644 --- a/backend/sync_server/src/server/delete_document.rs +++ b/backend/sync_server/src/server/delete_document.rs @@ -7,6 +7,8 @@ use axum_extra::{ headers::{authorization::Bearer, Authorization}, TypedHeader, }; +use schemars::JsonSchema; +use serde::Deserialize; use super::{auth::auth, requests::DeleteDocumentVersion}; use crate::{ @@ -15,10 +17,20 @@ use crate::{ errors::{not_found_error, server_error, SyncServerError}, }; +// This is required for aide to infer the path parameter types and names +#[derive(Deserialize, JsonSchema)] +pub struct PathParams { + vault_id: VaultId, + document_id: DocumentId, +} + #[axum::debug_handler] pub async fn delete_document( TypedHeader(auth_header): TypedHeader>, - Path((vault_id, document_id)): Path<(VaultId, DocumentId)>, + Path(PathParams { + vault_id, + document_id, + }): Path, State(state): State, Json(request): Json, ) -> Result<(), SyncServerError> { diff --git a/backend/sync_server/src/server/fetch_latest_document_version.rs b/backend/sync_server/src/server/fetch_latest_document_version.rs index e741b99e..3336830a 100644 --- a/backend/sync_server/src/server/fetch_latest_document_version.rs +++ b/backend/sync_server/src/server/fetch_latest_document_version.rs @@ -7,6 +7,8 @@ use axum_extra::{ headers::{authorization::Bearer, Authorization}, TypedHeader, }; +use schemars::JsonSchema; +use serde::Deserialize; use super::auth::auth; use crate::{ @@ -15,10 +17,20 @@ use crate::{ errors::{not_found_error, server_error, SyncServerError}, }; +// This is required for aide to infer the path parameter types and names +#[derive(Deserialize, JsonSchema)] +pub struct PathParams { + vault_id: VaultId, + document_id: DocumentId, +} + #[axum::debug_handler] pub async fn fetch_latest_document_version( TypedHeader(auth_header): TypedHeader>, - Path((vault_id, document_id)): Path<(VaultId, DocumentId)>, + Path(PathParams { + vault_id, + document_id, + }): Path, State(state): State, ) -> Result, SyncServerError> { auth(&state, auth_header.token())?; diff --git a/backend/sync_server/src/server/fetch_latest_documents.rs b/backend/sync_server/src/server/fetch_latest_documents.rs index 7ba78c1c..d5235a71 100644 --- a/backend/sync_server/src/server/fetch_latest_documents.rs +++ b/backend/sync_server/src/server/fetch_latest_documents.rs @@ -6,6 +6,8 @@ use axum_extra::{ headers::{authorization::Bearer, Authorization}, TypedHeader, }; +use schemars::JsonSchema; +use serde::Deserialize; use super::auth::auth; use crate::{ @@ -14,10 +16,16 @@ use crate::{ errors::{server_error, SyncServerError}, }; +// This is required for aide to infer the path parameter types and names +#[derive(Deserialize, JsonSchema)] +pub struct PathParams { + vault_id: VaultId, +} + #[axum::debug_handler] pub async fn fetch_latest_documents( TypedHeader(auth_header): TypedHeader>, - Path(vault_id): Path, + Path(PathParams { vault_id }): Path, State(state): State, ) -> Result>, SyncServerError> { auth(&state, auth_header.token())?; diff --git a/backend/sync_server/src/server/update_document.rs b/backend/sync_server/src/server/update_document.rs index f6b9f6d4..dc26f9da 100644 --- a/backend/sync_server/src/server/update_document.rs +++ b/backend/sync_server/src/server/update_document.rs @@ -7,6 +7,8 @@ use axum_extra::{ headers::{authorization::Bearer, Authorization}, TypedHeader, }; +use schemars::JsonSchema; +use serde::Deserialize; use sync_lib::{base64_to_bytes, base64_to_string}; use super::{auth::auth, requests::UpdateDocumentVersion}; @@ -16,10 +18,20 @@ use crate::{ errors::{client_error, not_found_error, server_error, SyncServerError}, }; +// This is required for aide to infer the path parameter types and names +#[derive(Deserialize, JsonSchema)] +pub struct PathParams { + vault_id: VaultId, + document_id: DocumentId, +} + #[axum::debug_handler] pub async fn update_document( TypedHeader(auth_header): TypedHeader>, - Path((vault_id, document_id)): Path<(VaultId, DocumentId)>, + Path(PathParams { + vault_id, + document_id, + }): Path, State(state): State, Json(request): Json, ) -> Result, SyncServerError> {