mac4nick/src/routes.rs
2020-08-21 20:02:44 +02:00

30 lines
1 KiB
Rust

use crate::db;
use crate::forms::ChangeForm;
use crate::middleware::ForwardAuthInfo;
use crate::session::Session;
use crate::templates::IndexTemplate;
use tide::Redirect;
pub async fn healthz(_request: crate::Request) -> tide::Result {
Ok("ok".into())
}
pub async fn index(mut request: crate::Request) -> tide::Result {
let forward_auth: &ForwardAuthInfo = request.ext().unwrap();
let nickname = forward_auth.nickname.clone();
let my = db::Device::for_user(&nickname)
.fetch_all(&request.state().pool)
.await?;
let unassinged = db::AliveDevice::unassinged()
.fetch_all(&request.state().pool)
.await?;
let messages = Session::from(&mut request).pop_messages();
Ok(IndexTemplate::new(nickname, my, unassinged, messages).into())
}
pub async fn change(mut request: crate::Request) -> tide::Result {
let form: ChangeForm = request.body_form().await?;
let message = form.handle(&request).await;
Session::from(&mut request).add_message(message);
Ok(Redirect::see_other("/").into())
}