1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
// use actix_session::UserSession;
// use actix_web::HttpRequest;
// use serde::{Deserialize, Serialize};
// use crate::error::Error;
// /// A `FlashMessage` is a generic message that can be shoved into the Session
// /// between requests. This isn't particularly useful for JSON-based workflows, but
// /// for the traditional webapp side it works well.
// #[derive(Debug, Deserialize, Serialize)]
// pub struct FlashMessage {
// pub title: String,
// pub message: String,
// }
// pub trait FlashMessages {
// /// Adds a flash message to the stack.
// fn flash(&self, title: &str, message: &str) -> Result<(), Error>;
// /// Internally used; loads flash messages for template use and removes the existing
// /// stack.
// fn get_flash_messages(&self) -> Result<Vec<FlashMessage>, Error>;
// }
// impl FlashMessages for HttpRequest {
// fn flash(&self, title: &str, message: &str) -> Result<(), Error> {
// let session = self.get_session();
// let mut messages: Vec<FlashMessage> = match session.get("flsh")? {
// Some(messages) => messages,
// None => Vec::new(),
// };
// messages.push(FlashMessage {
// title: title.to_string(),
// message: message.to_string(),
// });
// session.set("flsh", messages)?;
// Ok(())
// }
// fn get_flash_messages(&self) -> Result<Vec<FlashMessage>, Error> {
// let session = self.get_session();
// let messages = match session.get("flsh")? {
// Some(messages) => messages,
// None => Vec::new(),
// };
// session.remove("flsh");
// Ok(messages)
// }
// }