summaryrefslogtreecommitdiff
path: root/src/handlers.rs
diff options
context:
space:
mode:
authorAdam T. Carpenter <atc@53hor.net>2024-09-14 20:30:05 -0400
committerAdam T. Carpenter <atc@53hor.net>2024-09-14 20:30:05 -0400
commit9f341d439f7aa5fd2365024169ead2d6bdc3210c (patch)
treec9967da54d4f8ca02385fc3fac4989572fd00eee /src/handlers.rs
parent340a804e550cb5b733bd2e64e515e79740bb6338 (diff)
downloadcarpentertutoring-9f341d439f7aa5fd2365024169ead2d6bdc3210c.tar.xz
carpentertutoring-9f341d439f7aa5fd2365024169ead2d6bdc3210c.zip
feat: rewrite complete
Diffstat (limited to 'src/handlers.rs')
-rw-r--r--src/handlers.rs34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/handlers.rs b/src/handlers.rs
new file mode 100644
index 0000000..db5cf7c
--- /dev/null
+++ b/src/handlers.rs
@@ -0,0 +1,34 @@
+use askama::Template;
+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 std::sync::Arc;
+use axum::response::Html;
+use axum::extract::State;
+
+pub async fn about_handler(State(repo): State<Arc<impl TutorRepo>>) -> Html<String> {
+ let view = AboutView::with_tutors(repo.load());
+ Html(view.render().unwrap())
+}
+
+pub async fn brochure_handler() -> Html<String> {
+ Html(BrochureTemplate{}.render().unwrap())
+}
+
+pub async fn index_handler() -> Html<String> {
+ Html(IndexTemplate {}.render().unwrap())
+}
+
+pub async fn policies_handler() -> Html<String> {
+ Html(PoliciesTemplate{}.render().unwrap())
+}
+
+pub async fn posts_handler(State(repo): State<Arc<impl PostRepo>>) -> Html<String> {
+ let view = PostsView::with_posts(repo.load());
+ Html(view.render().unwrap())
+}
+