diff options
Diffstat (limited to 'src/handlers.rs')
-rw-r--r-- | src/handlers.rs | 45 |
1 files changed, 33 insertions, 12 deletions
diff --git a/src/handlers.rs b/src/handlers.rs index 800d8f8..aa36e15 100644 --- a/src/handlers.rs +++ b/src/handlers.rs @@ -1,15 +1,18 @@ -use askama::Template; -use crate::views::post::PostView; -use crate::views::posts::PostsView; use crate::posts::abstractions::repo::PostRepo; -use crate::views::policies::PoliciesTemplate; -use crate::views::index::IndexTemplate; -use crate::views::brochure::BrochureTemplate; -use crate::views::about::AboutView; use crate::tutors::abstractions::tutor_repo::TutorRepo; +use crate::views::about::AboutView; +use crate::views::brochure::BrochureTemplate; +use crate::views::highered::HigherEdTemplate; +use crate::views::index::IndexTemplate; +use crate::views::k12::K12Template; +use crate::views::policies::PoliciesTemplate; +use crate::views::post::PostView; +use crate::views::posts::PostsView; +use crate::views::pro::ProTemplate; +use askama::Template; +use axum::extract::{Path, State}; +use axum::response::{Html, Redirect}; use std::sync::Arc; -use axum::response::Html; -use axum::extract::{State, Path}; pub async fn about_handler(State(repo): State<Arc<impl TutorRepo>>) -> Html<String> { let view = AboutView::with_tutors(repo.load()); @@ -17,7 +20,7 @@ pub async fn about_handler(State(repo): State<Arc<impl TutorRepo>>) -> Html<Stri } pub async fn brochure_handler() -> Html<String> { - Html(BrochureTemplate{}.render().unwrap()) + Html(BrochureTemplate {}.render().unwrap()) } pub async fn index_handler() -> Html<String> { @@ -25,7 +28,7 @@ pub async fn index_handler() -> Html<String> { } pub async fn policies_handler() -> Html<String> { - Html(PoliciesTemplate{}.render().unwrap()) + Html(PoliciesTemplate {}.render().unwrap()) } pub async fn posts_handler(State(repo): State<Arc<impl PostRepo>>) -> Html<String> { @@ -33,8 +36,26 @@ pub async fn posts_handler(State(repo): State<Arc<impl PostRepo>>) -> Html<Strin Html(view.render().unwrap()) } -pub async fn post_handler(Path(post_id): Path<String>, State(repo): State<Arc<impl PostRepo>>) -> Html<String> { +pub async fn post_handler( + Path(post_id): Path<String>, + State(repo): State<Arc<impl PostRepo>>, +) -> Html<String> { let view = PostView::with_post(repo.by_id(&post_id)); Html(view.render().unwrap()) } +pub async fn post_redirect(Path(post_id): Path<String>) -> Redirect { + Redirect::permanent(&format!("/blog/{post_id}")) +} + +pub async fn k12_handler() -> Html<String> { + Html(K12Template {}.render().unwrap()) +} + +pub async fn highered_handler() -> Html<String> { + Html(HigherEdTemplate {}.render().unwrap()) +} + +pub async fn pro_handler() -> Html<String> { + Html(ProTemplate {}.render().unwrap()) +} |