Fix 302 being returned instead of 200

This commit is contained in:
Evie Viau-Chow-Stuart 2023-02-08 01:45:09 -08:00
parent 7d5fadf47e
commit 116024a52d
Signed by: evie
GPG key ID: 928652CDFCEC8099
4 changed files with 45 additions and 28 deletions

View file

@ -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,
},
)
}

View file

@ -114,7 +114,7 @@ pub(crate) async fn resolver(
}
(
StatusCode::FOUND,
StatusCode::OK,
PageTemplate {
draft: page_meta.clone().draft,
title: page_meta.clone().title,

View file

@ -125,7 +125,7 @@ pub(crate) async fn resolver(
};
(
StatusCode::FOUND,
StatusCode::OK,
PostTemplate {
draft: post_meta.clone().draft,
title: post_meta.clone().title,

View file

@ -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,
},
)
}