use actix_files::NamedFile;
use actix_web::{web, App, Either, HttpRequest, HttpResponse, HttpServer, Responder};
use actix_web_flash::{FlashMessage, FlashMiddleware, FlashResponse};
fn show_flash(flash: FlashMessage<String>) -> impl Responder {
flash.into_inner()
}
fn set_flash(req: HttpRequest) -> Either<impl Responder, impl Responder> {
if req.query_string().len() > 1 {
Either::A(FlashResponse::new(
Some(format!("Query string: {}", req.query_string()).to_owned()),
HttpResponse::SeeOther()
.header(actix_http::http::header::LOCATION, "/show_flash")
.finish(),
))
} else {
Either::B(NamedFile::open("README.md"))
}
}
fn main() {
HttpServer::new(|| {
App::new()
.wrap(FlashMiddleware::default())
.route("/show_flash", web::get().to(show_flash))
.route("/set_flash", web::route().to(set_flash))
})
.bind("127.0.0.1:8080")
.unwrap()
.run()
.unwrap();
}