postgres via sqlx - workable?
This commit is contained in:
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user