postgres via sqlx - workable?

This commit is contained in:
2026-04-20 01:17:30 +02:00
parent acfd8a6d72
commit 879c5ee3d3
42 changed files with 2536 additions and 1184 deletions

View File

@@ -6,7 +6,6 @@ use maud::{PreEscaped, html};
use serde::Deserialize;
use crate::{
database,
error::CompositeError,
quotes::Quote,
users::{User, auth::UserAuthenticate},
@@ -25,21 +24,22 @@ pub struct PageQuery {
}
pub async fn page(
axum::extract::State(state): axum::extract::State<crate::MnemoState>,
Query(query): Query<PageQuery>,
req: Request,
) -> Result<Response, CompositeError> {
let u = match User::authenticate(req.headers())? {
let mut conn = state.pool.acquire().await?;
let u = match User::authenticate(&mut *conn, req.headers()).await? {
Some(u) => u,
None => return Ok(Redirect::to(&format!("/login?r={}", req.uri().path())).into_response()),
};
let conn = database::conn()?;
let page = query.page.unwrap_or(1).max(1);
let per_page = 10;
let offset = (page - 1) * per_page;
let quotes = Quote::get_chronological_offset(&conn, offset, per_page)?;
let total_quotes = Quote::total_count(&conn)?;
let quotes = Quote::get_chronological_offset(&mut *conn, offset, per_page).await?;
let total_quotes = Quote::total_count(&mut *conn).await?;
let total_pages = (total_quotes as f64 / per_page as f64).ceil() as i64;
Ok(base(