Add new endpoints
This commit is contained in:
parent
ce5f3bbd7d
commit
69a1e91d4b
1 changed files with 1193 additions and 505 deletions
43
sync-server/src/server/endpoints/get_file_manifest.rs
Normal file
43
sync-server/src/server/endpoints/get_file_manifest.rs
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
use axum::{
|
||||
Json,
|
||||
extract::{Path, State},
|
||||
};
|
||||
use log::debug;
|
||||
use serde::Deserialize;
|
||||
|
||||
use crate::{
|
||||
app_state::{
|
||||
AppState,
|
||||
database::{
|
||||
Database,
|
||||
models::{FileManifest, VaultId},
|
||||
},
|
||||
},
|
||||
errors::{SyncServerError, server_error},
|
||||
utils::normalize::normalize,
|
||||
};
|
||||
|
||||
#[derive(Deserialize)]
|
||||
pub struct GetFileManifestPath {
|
||||
#[serde(deserialize_with = "normalize")]
|
||||
vault_id: VaultId,
|
||||
}
|
||||
|
||||
#[axum::debug_handler]
|
||||
pub async fn get_file_manifest(
|
||||
Path(path): Path<GetFileManifestPath>,
|
||||
State(state): State<AppState>,
|
||||
) -> Result<Json<FileManifest>, SyncServerError> {
|
||||
debug!("Fetching file manifest for vault `{}`", path.vault_id);
|
||||
|
||||
let mut transaction = state
|
||||
.database
|
||||
.create_readonly_transaction(&path.vault_id)
|
||||
.await
|
||||
.map_err(server_error)?;
|
||||
|
||||
Database::current_file_manifest(&mut transaction)
|
||||
.await
|
||||
.map(Json)
|
||||
.map_err(server_error)
|
||||
}
|
||||
Loading…
Reference in a new issue