Fix 302 being returned instead of 200
This commit is contained in:
parent
7d5fadf47e
commit
116024a52d
4 changed files with 45 additions and 28 deletions
|
@ -4,9 +4,11 @@ pub(crate) mod posts;
|
|||
|
||||
use crate::{block_types::BlockTypes, AppState};
|
||||
use askama::Template;
|
||||
use askama_axum::IntoResponse;
|
||||
use chrono::{Datelike, Utc};
|
||||
|
||||
use axum::extract::State;
|
||||
use axum::http::StatusCode;
|
||||
use log::warn;
|
||||
|
||||
use crate::block_types;
|
||||
|
@ -73,7 +75,7 @@ pub(crate) struct HomeSpecialTemplate {
|
|||
}
|
||||
|
||||
// Handle the special home page
|
||||
pub(crate) async fn root(state: State<AppState>) -> HomeSpecialTemplate {
|
||||
pub(crate) async fn root(state: State<AppState>) -> impl IntoResponse {
|
||||
// Grab special home slug page content
|
||||
let page_meta: page::Model = match Page::find()
|
||||
.filter(page::Column::Slug.eq("home"))
|
||||
|
@ -155,14 +157,17 @@ pub(crate) async fn root(state: State<AppState>) -> HomeSpecialTemplate {
|
|||
None => panic!("Missing \"current\" settings in database!"),
|
||||
};
|
||||
|
||||
HomeSpecialTemplate {
|
||||
title: page_meta.clone().title,
|
||||
description: page_meta.clone().description,
|
||||
show_title: page_meta.clone().show_title,
|
||||
content_blocks,
|
||||
year: Utc::now().date_naive().year().to_string(),
|
||||
draft: false,
|
||||
menu,
|
||||
settings,
|
||||
}
|
||||
(
|
||||
StatusCode::OK,
|
||||
HomeSpecialTemplate {
|
||||
title: page_meta.clone().title,
|
||||
description: page_meta.clone().description,
|
||||
show_title: page_meta.clone().show_title,
|
||||
content_blocks,
|
||||
year: Utc::now().date_naive().year().to_string(),
|
||||
draft: false,
|
||||
menu,
|
||||
settings,
|
||||
},
|
||||
)
|
||||
}
|
||||
|
|
|
@ -114,7 +114,7 @@ pub(crate) async fn resolver(
|
|||
}
|
||||
|
||||
(
|
||||
StatusCode::FOUND,
|
||||
StatusCode::OK,
|
||||
PageTemplate {
|
||||
draft: page_meta.clone().draft,
|
||||
title: page_meta.clone().title,
|
||||
|
|
|
@ -125,7 +125,7 @@ pub(crate) async fn resolver(
|
|||
};
|
||||
|
||||
(
|
||||
StatusCode::FOUND,
|
||||
StatusCode::OK,
|
||||
PostTemplate {
|
||||
draft: post_meta.clone().draft,
|
||||
title: post_meta.clone().title,
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
use askama::Template;
|
||||
use askama_axum::IntoResponse;
|
||||
use axum::extract::State;
|
||||
use axum::http::StatusCode;
|
||||
|
||||
use crate::AppState;
|
||||
|
||||
use sea_orm::*;
|
||||
use crate::entities::{prelude::*, *};
|
||||
use sea_orm::*;
|
||||
|
||||
#[derive(Template)]
|
||||
#[template(path = "posts_listing.html")]
|
||||
|
@ -13,7 +14,7 @@ pub(crate) struct PageTemplate {
|
|||
menu: Vec<menu_entry::Model>,
|
||||
posts: Vec<post::Model>,
|
||||
year: String,
|
||||
settings: settings::Model
|
||||
settings: settings::Model,
|
||||
}
|
||||
|
||||
pub(crate) async fn posts(state: State<AppState>) -> impl IntoResponse {
|
||||
|
@ -21,23 +22,26 @@ pub(crate) async fn posts(state: State<AppState>) -> impl IntoResponse {
|
|||
.filter(menu::Column::Name.eq("primary"))
|
||||
.one(&state.db_conn)
|
||||
.await
|
||||
.expect("Failed to get primary menu! HALTING") {
|
||||
Some(menu) => menu,
|
||||
None => panic!("Missing \"primary\" menu in database!"),
|
||||
}.find_related(MenuEntry)
|
||||
.order_by_asc(menu_entry::Column::Order)
|
||||
.all(&state.db_conn)
|
||||
.await
|
||||
.expect("Failed to get primary menu items!");
|
||||
.expect("Failed to get primary menu! HALTING")
|
||||
{
|
||||
Some(menu) => menu,
|
||||
None => panic!("Missing \"primary\" menu in database!"),
|
||||
}
|
||||
.find_related(MenuEntry)
|
||||
.order_by_asc(menu_entry::Column::Order)
|
||||
.all(&state.db_conn)
|
||||
.await
|
||||
.expect("Failed to get primary menu items!");
|
||||
|
||||
let settings: settings::Model = match Settings::find()
|
||||
.filter(settings::Column::Id.eq("current"))
|
||||
.one(&state.db_conn)
|
||||
.await
|
||||
.expect("Failed to get site settings!") {
|
||||
Some (settings) => settings,
|
||||
None => panic!("Missing \"current\" settings in database!")
|
||||
};
|
||||
.expect("Failed to get site settings!")
|
||||
{
|
||||
Some(settings) => settings,
|
||||
None => panic!("Missing \"current\" settings in database!"),
|
||||
};
|
||||
|
||||
let posts: Vec<post::Model> = Post::find()
|
||||
.filter(post::Column::Draft.eq(false))
|
||||
|
@ -46,5 +50,13 @@ pub(crate) async fn posts(state: State<AppState>) -> impl IntoResponse {
|
|||
.await
|
||||
.expect("Failed to load posts!");
|
||||
|
||||
PageTemplate { menu, posts, year: "2023".to_owned(), settings }
|
||||
(
|
||||
StatusCode::OK,
|
||||
PageTemplate {
|
||||
menu,
|
||||
posts,
|
||||
year: "2023".to_owned(),
|
||||
settings,
|
||||
},
|
||||
)
|
||||
}
|
||||
|
|
Reference in a new issue