mabel/src/routes/content.rs

17 lines
519 B
Rust

use crate::{content::Page, error::AppError, state::AppState};
use axum::extract::{Path, State};
use std::sync::Arc;
pub async fn page(
State(state): State<Arc<AppState>>,
Path((site, slug)): Path<(String, String)>,
) -> Result<String, AppError> {
let page_query = sqlx::query_as(
"SELECT p.* FROM pages p JOIN sites s ON p.site = s.id WHERE p.slug = $1 AND s.name = $2",
)
.bind(slug)
.bind(site);
let page: Page = page_query.fetch_one(&state.database).await?;
Ok(page.title)
}