summaryrefslogtreecommitdiff
path: root/src/handlers.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/handlers.rs')
-rw-r--r--src/handlers.rs45
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())
+}