From cef6e9f4b1eb39aba0e9ec8ede11b98121a70494 Mon Sep 17 00:00:00 2001 From: Mylloon Date: Fri, 14 Apr 2023 11:30:58 +0200 Subject: [PATCH] WIP: Blogs --- src/main.rs | 5 +++++ src/routes/blog.rs | 28 ++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 src/routes/blog.rs diff --git a/src/main.rs b/src/main.rs index 6ceb617..f154fc5 100644 --- a/src/main.rs +++ b/src/main.rs @@ -27,6 +27,9 @@ mod portfolio; #[path = "routes/contrib.rs"] mod contrib; +#[path = "routes/blog.rs"] +mod blog; + #[actix_web::main] async fn main() -> Result<()> { let config = config::get_config("./config/config.toml"); @@ -55,6 +58,8 @@ async fn main() -> Result<()> { .service(networks::page) .service(portfolio::page) .service(contrib::page) + .service(blog::index) + .service(blog::page) .service(Files::new("/", config.static_location.clone())) .default_service(web::to(not_found::page)) }) diff --git a/src/routes/blog.rs b/src/routes/blog.rs new file mode 100644 index 0000000..3c1f769 --- /dev/null +++ b/src/routes/blog.rs @@ -0,0 +1,28 @@ +use actix_web::{get, web, HttpResponse, Responder}; +use cached::proc_macro::once; +use ramhorns::Content; + +use crate::config::Config; + +#[get("/blog")] +pub async fn index(config: web::Data) -> impl Responder { + HttpResponse::Ok().body(get_index(config.get_ref().clone())) +} + +#[derive(Content)] +struct BlogIndexTemplate {} + +#[once(time = 60)] +pub fn get_index(_config: Config) -> String { + String::from("Salut pour tous") +} + +#[get("/blog/{id}")] +pub async fn page(path: web::Path<(u32,)>, config: web::Data) -> impl Responder { + HttpResponse::Ok().body(get_page(path.into_inner().0, config.get_ref().clone())) +} + +#[once(time = 60)] +pub fn get_page(id: u32, _config: Config) -> String { + format!("Salut pour {id}") +}