use flyer::{
request::Request,
response::{HTTP_UNAUTHORIZED, Response},
routing::next::Next, server
};
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize)]
pub struct JsonMessage {
message: String
}
pub async fn auth(req: Request, res: Response, next: Next) -> Response {
if req.header("authorization") != "my-secret-token" {
return res.status_code(HTTP_UNAUTHORIZED).json(&JsonMessage{
message: "Unauthorized Access".to_owned()
})
}
return next.handle(req, res);
}
fn main() {
let server = server("127.0.0.1", 9999);
server.router().group("api", |router| {
router.get("/", async |_req, res| {
return res.html("<h1>Authorized Access</h1>");
});
}).middleware(auth);
print!("\r\n\r\nRunning server: {}\r\n\r\n", server.address());
server.listen();
}