17 lines
519 B
Rust
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)
|
|
}
|