use serde::Serialize; use rocket::http::{Status}; use crate::template::Template; use crate::models; use crate::DbConn; #[derive(Serialize)] pub struct RecordsPage { zone: String } #[get("/zone//records")] pub async fn get_zone_records_page(user_info: models::UserInfo, zone: models::AbsoluteName, conn: DbConn) -> Result, Status> { let zone_name = zone.to_utf8(); conn.run(move |c| { if user_info.is_admin() { models::Zone::get_by_name(c, &zone_name) } else { user_info.get_zone(c, &zone_name) } }).await.map_err(|e| models::ErrorResponse::from(e).status)?; Ok(Template::new("zone/records.html", RecordsPage { zone: zone.to_utf8(), })) }