aboutsummaryrefslogtreecommitdiff
path: root/src/handlers/nets.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/handlers/nets.rs')
-rw-r--r--src/handlers/nets.rs50
1 files changed, 0 insertions, 50 deletions
diff --git a/src/handlers/nets.rs b/src/handlers/nets.rs
deleted file mode 100644
index 6010787..0000000
--- a/src/handlers/nets.rs
+++ /dev/null
@@ -1,50 +0,0 @@
-use std::sync::Arc;
-
-use axum::{Extension, Form};
-use axum::response::{Html, IntoResponse, Redirect};
-use axum_extra::extract::PrivateCookieJar;
-use sqlx::query;
-use sqlx::types::ipnetwork::IpNetwork;
-use serde::Deserialize;
-
-use crate::State;
-
-use crate::errors::{HtmlResult, ServiceError};
-
-use super::auth::get_user_or_403;
-
-#[derive(Deserialize)]
-pub struct NewNetForm {
- pub subnet: String,
- pub description: String,
-}
-
-pub async fn new(jar: PrivateCookieJar, state: Extension<Arc<State>>) -> Result<Html<Vec<u8>>, ServiceError> {
- let mut conn = state.conn.acquire().await?;
-
- let _ = get_user_or_403(jar, &mut conn).await?;
-
- let mut buf = Vec::new();
- crate::templates::new_net_html(&mut buf).unwrap();
-
- Ok(Html(buf))
-}
-
-pub async fn new_post(Form(new): Form<NewNetForm>, jar: PrivateCookieJar, state: Extension<Arc<State>>) -> Result<Redirect, ServiceError> {
- let mut conn = state.conn.acquire().await?;
-
- let _ = get_user_or_403(jar, &mut conn).await?;
-
- let id = ulid::Ulid::new();
-
- let cidr: IpNetwork = match new.subnet.parse() {
- Ok(c) => c,
- Err(e) => {
- return Err(ServiceError::Parse(e.to_string()));
- }
- };
-
- query("INSERT INTO networks (subnet, description, id) VALUES ($1, $2, $3)").bind(cidr).bind(new.description).bind(id.to_string()).execute(&mut conn).await?;
-
- Ok(Redirect::to("/"))
-}