|
@@ -19,30 +19,24 @@ pub async fn index(req: Request<()>) -> Result {
|
19
|
19
|
let posts: Vec<Post> = fs::get_all_posts().await?;
|
20
|
20
|
let mut context = Context::new();
|
21
|
21
|
context.insert("posts", &posts);
|
22
|
|
- let logged_in: bool = req.session().get("logged_in").unwrap_or(false);
|
23
|
|
- context.insert("logged_in", &logged_in);
|
24
|
|
- render_response("index.html", &context)
|
|
22
|
+ render_response("index.html", &context, &req)
|
25
|
23
|
}
|
26
|
24
|
|
27
|
25
|
pub async fn single_post(req: Request<()>) -> Result {
|
28
|
26
|
let mut context = Context::new();
|
29
|
|
- let logged_in: bool = req.session().get("logged_in").unwrap_or(false);
|
30
|
|
- context.insert("logged_in", &logged_in);
|
31
|
27
|
let post_id = req.param("id")?;
|
32
|
28
|
let post = fs::get_one_post(post_id).await?;
|
33
|
29
|
context.insert("post", &post);
|
34
|
|
- render_response("single.html", &context)
|
|
30
|
+ render_response("single.html", &context, &req)
|
35
|
31
|
}
|
36
|
32
|
|
37
|
33
|
pub async fn edit_post(req: Request<()>) -> Result {
|
38
|
|
- let logged_in: bool = req.session().get("logged_in").unwrap_or(false);
|
39
|
34
|
let mut context = Context::new();
|
40
|
|
- context.insert("logged_in", &logged_in);
|
41
|
35
|
let post_id = req.param("id")?;
|
42
|
36
|
let mut post = fs::get_one_post(post_id).await?;
|
43
|
37
|
post.body = post.body.replace("<br>", "\n");
|
44
|
38
|
context.insert("post", &post);
|
45
|
|
- render_response("edit.html", &context)
|
|
39
|
+ render_response("edit.html", &context, &req)
|
46
|
40
|
}
|
47
|
41
|
|
48
|
42
|
pub async fn create_post(mut req: Request<()>) -> Result {
|
|
@@ -71,8 +65,6 @@ pub async fn delete_post(req: Request<()>) -> Result {
|
71
|
65
|
|
72
|
66
|
pub async fn login_page(mut req: Request<()>) -> Result {
|
73
|
67
|
let mut context = Context::new();
|
74
|
|
- let logged_in: bool = req.session().get("logged_in").unwrap_or(false);
|
75
|
|
- context.insert("logged_in", &logged_in);
|
76
|
68
|
match req.session_mut().get::<String>("flash_error") {
|
77
|
69
|
Some(error) => {
|
78
|
70
|
req.session_mut().remove("flash_error");
|
|
@@ -80,7 +72,7 @@ pub async fn login_page(mut req: Request<()>) -> Result {
|
80
|
72
|
}
|
81
|
73
|
None => {}
|
82
|
74
|
}
|
83
|
|
- render_response("login.html", &context)
|
|
75
|
+ render_response("login.html", &context, &req)
|
84
|
76
|
}
|
85
|
77
|
|
86
|
78
|
pub async fn login(mut req: Request<()>) -> Result {
|
|
@@ -110,8 +102,11 @@ pub async fn logout(mut req: Request<()>) -> Result {
|
110
|
102
|
Ok(Redirect::new("/").into())
|
111
|
103
|
}
|
112
|
104
|
|
113
|
|
-pub fn render_response(template: &str, context: &Context) -> Result<Response> {
|
114
|
|
- let html = render_template(template, context)?;
|
|
105
|
+pub fn render_response(template: &str, context: &Context, req: &Request<()>) -> Result<Response> {
|
|
106
|
+ let mut context = context.clone();
|
|
107
|
+ let logged_in: bool = req.session().get("logged_in").unwrap_or(false);
|
|
108
|
+ context.insert("logged_in", &logged_in);
|
|
109
|
+ let html = render_template(template, &context)?;
|
115
|
110
|
let mut res = Response::new(StatusCode::Ok);
|
116
|
111
|
res.set_body(html);
|
117
|
112
|
res.set_content_type(mime::HTML);
|