From cf0c213a59ed280812387a54e34184958715d581 Mon Sep 17 00:00:00 2001 From: Celeo Date: Fri, 1 Nov 2024 15:35:05 -0700 Subject: [PATCH] Remove a controller from event pos. on unreg. --- vzdv-site/src/endpoints/events.rs | 7 +++++++ vzdv/src/sql.rs | 2 ++ 2 files changed, 9 insertions(+) diff --git a/vzdv-site/src/endpoints/events.rs b/vzdv-site/src/endpoints/events.rs index cbef1f0..f0f530a 100644 --- a/vzdv-site/src/endpoints/events.rs +++ b/vzdv-site/src/endpoints/events.rs @@ -525,6 +525,7 @@ async fn api_register_unregister( } else { return Ok(StatusCode::UNAUTHORIZED); }; + // get the registration ID from event ID & CID let existing_registration: Option = sqlx::query_as(sql::GET_EVENT_REGISTRATION_FOR) .bind(id) @@ -537,6 +538,12 @@ async fn api_register_unregister( .execute(&state.db) .await?; } + // remove the controller from any positions in this event + sqlx::query(sql::CLEAR_CID_FROM_EVENT_POSITIONS) + .bind(id) + .bind(cid) + .execute(&state.db) + .await?; info!("{cid} removed their registration to event {id}"); Ok(StatusCode::ACCEPTED) } diff --git a/vzdv/src/sql.rs b/vzdv/src/sql.rs index 496f0ac..0c87006 100644 --- a/vzdv/src/sql.rs +++ b/vzdv/src/sql.rs @@ -412,6 +412,8 @@ pub const INSERT_EVENT_POSITION: &str = "INSERT INTO event_position VALUES (NULL, $1, $2, $3, NULL);"; pub const DELETE_EVENT_POSITION: &str = "DELETE FROM event_position WHERE id=$1"; pub const UPDATE_EVENT_POSITION_CONTROLLER: &str = "UPDATE event_position SET cid=$2 WHERE id=$1"; +pub const CLEAR_CID_FROM_EVENT_POSITIONS: &str = + "UPDATE event_position SET cid=NULL WHERE event_id=$1 AND cid=$2"; pub const GET_STAFF_NOTES_FOR: &str = "SELECT * FROM staff_note WHERE cid=$1"; pub const GET_STAFF_NOTE: &str = "SELECT * FROM staff_note WHERE id=$1";