From 068eda3052b8232967783ef07452c4ef206417c2 Mon Sep 17 00:00:00 2001 From: eiiko6 Date: Wed, 3 Jun 2026 15:38:51 +0200 Subject: [PATCH] fixed clippy errors --- .gitignore | 1 + src/auth.rs | 6 +++--- src/realtime.rs | 12 ++++++++++++ src/routes/messages.rs | 44 +++++++++++++++++++++++------------------- src/routes/rooms.rs | 6 ++---- src/routes/users.rs | 28 +++++++++++++-------------- src/routes/voice.rs | 18 ++++++++--------- 7 files changed, 65 insertions(+), 50 deletions(-) diff --git a/.gitignore b/.gitignore index 24f0029..77f60e4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /target /result /uploads +*.swp diff --git a/src/auth.rs b/src/auth.rs index ee18e60..2ab5b7d 100644 --- a/src/auth.rs +++ b/src/auth.rs @@ -24,7 +24,7 @@ pub fn hash_password(password: &str) -> Result { .hash_password(password.as_bytes(), &salt) .map_err(|e| e.to_string()) .map(|ph| ph.to_string()) - .map_err(|e| APIError::Internal(e)) + .map_err(APIError::Internal) } pub fn verify_password(hash: &str, password: &str) -> bool { @@ -70,12 +70,12 @@ pub fn verify_jwt(headers: HeaderMap) -> Result { verify_jwt_string(&token.to_string()) } -pub fn verify_jwt_string(token: &String) -> Result { +pub fn verify_jwt_string(token: &str) -> Result { let secret = std::env::var("FRANGIPANE_JWT_SECRET").unwrap_or_else(|_| DEFAULT_SECRET_KEY.to_string()); decode::( - token.as_str(), + token, &DecodingKey::from_secret(secret.as_ref()), &Validation::default(), ) diff --git a/src/realtime.rs b/src/realtime.rs index f60eb74..349dc35 100644 --- a/src/realtime.rs +++ b/src/realtime.rs @@ -43,6 +43,12 @@ impl RealtimeMessages { } } +impl Default for RealtimeMessages { + fn default() -> Self { + Self::new() + } +} + impl RealTimeVoices { pub fn new() -> Self { Self { @@ -63,3 +69,9 @@ impl RealTimeVoices { self.rooms.retain(|_, sender| sender.receiver_count() > 0); } } + +impl Default for RealTimeVoices { + fn default() -> Self { + Self::new() + } +} diff --git a/src/routes/messages.rs b/src/routes/messages.rs index e96dbfc..4bde862 100644 --- a/src/routes/messages.rs +++ b/src/routes/messages.rs @@ -171,14 +171,14 @@ async fn create_message( .bind(room_id) .bind(&payload.message_type) .bind(&payload.content) - .bind(&uuid) + .bind(uuid) .fetch_one(&db) .await?; let sender_name = username_from_uuid(&db, claims.sub).await?; let message = Message { - uuid: uuid, + uuid, room_uuid, sender: sender_name, sender_uuid: claims.sub, @@ -263,11 +263,11 @@ async fn handle_message_socket( // Receive broadcast messages and send to client (any room) msg = receiver.recv() => { if let Ok(msg) = msg { - if let Ok(json) = serde_json::to_string(&msg) { - if socket.send(WsMessage::Text(json.into())).await.is_err() { - tracing::error!("Failed to send message to {who}, closing connection"); - break; - } + if let Ok(json) = serde_json::to_string(&msg) + && socket.send(WsMessage::Text(json.into())).await.is_err() + { + tracing::error!("Failed to send message to {who}, closing connection"); + break; } } else { break; @@ -287,19 +287,23 @@ async fn handle_message_socket( // Get incoming messages from client client_msg = socket.recv() => { if let Some(Ok(msg)) = client_msg { - match msg { - // WsMessage::Pong(_) => { - // tracing::debug!("Received Pong from {who}"); - // } - // WsMessage::Ping(_) => { - // tracing::info!("Received Ping from client"); - // } - // WsMessage::Text(_) => {} - WsMessage::Close(_) => { - tracing::debug!("Client disconnected"); - break; - } - _ => {} + // match msg { + // // WsMessage::Pong(_) => { + // // tracing::debug!("Received Pong from {who}"); + // // } + // // WsMessage::Ping(_) => { + // // tracing::info!("Received Ping from client"); + // // } + // // WsMessage::Text(_) => {} + // WsMessage::Close(_) => { + // tracing::debug!("Client disconnected"); + // break; + // } + // _ => {} + // } + if let WsMessage::Close(_) = msg { + tracing::debig!("Client disconnected"); + break; } } else { tracing::debug!("Client {who} abruptly disconnected"); diff --git a/src/routes/rooms.rs b/src/routes/rooms.rs index 1e0b6c5..c711a44 100644 --- a/src/routes/rooms.rs +++ b/src/routes/rooms.rs @@ -95,9 +95,6 @@ async fn list_rooms( Extension(db): Extension, ) -> Result>, APIError> { let claims = verify_jwt(headers)?; - if claims.sub != claims.sub { - return Err(APIError::InvalidToken); - } let user_id = user_id_from_uuid(&db, claims.sub).await?; @@ -142,7 +139,8 @@ async fn create_room( { let room_name_length = payload.name.len(); - if room_name_length > MAX_ROOM_NAME_LENGTH || room_name_length < 1 { + // if room_name_length > MAX_ROOM_NAME_LENGTH || room_name_length < 1 { + if !(1..=MAX_USERNAME_LENGTH).contains(&username_length) { return Err(APIError::RoomNameLength); } } diff --git a/src/routes/users.rs b/src/routes/users.rs index 8d1b495..335d33a 100644 --- a/src/routes/users.rs +++ b/src/routes/users.rs @@ -161,13 +161,13 @@ pub async fn register_user( .execute(&db) .await .map_err(|e| { - if let Some(db_err) = e.as_database_error() { - if db_err.code().map(|c| c == "23505").unwrap_or(false) { - match db_err.constraint() { - Some("user__username_key") => return APIError::UsernameTaken, - Some("user__email_key") => return APIError::EmailTaken, - _ => return APIError::Internal("".to_string()), // TODO: handle this case - } + if let Some(db_err) = e.as_database_error() + && db_err.code().map(|c| c == "23505").unwrap_or(false) + { + match db_err.constraint() { + Some("user__username_key") => return APIError::UsernameTaken, + Some("user__email_key") => return APIError::EmailTaken, + _ => return APIError::Internal("".to_string()), // TODO: handle this case } } APIError::DatabaseError(e) @@ -226,13 +226,13 @@ pub async fn update_user( .execute(&mut *tx) .await .map_err(|e| { - if let Some(db_err) = e.as_database_error() { - if db_err.code().map(|c| c == "23505").unwrap_or(false) { - match db_err.constraint() { - Some("user__username_key") => return APIError::UsernameTaken, - Some("user__email_key") => return APIError::EmailTaken, - _ => return APIError::Internal("".to_string()), // TODO: handle this case - } + if let Some(db_err) = e.as_database_error() + && db_err.code().map(|c| c == "23505").unwrap_or(false) + { + match db_err.constraint() { + Some("user__username_key") => return APIError::UsernameTaken, + Some("user__email_key") => return APIError::EmailTaken, + _ => return APIError::Internal("".to_string()), // TODO: handle this case } } APIError::DatabaseError(e) diff --git a/src/routes/voice.rs b/src/routes/voice.rs index 346f0ad..3f9d928 100644 --- a/src/routes/voice.rs +++ b/src/routes/voice.rs @@ -81,15 +81,15 @@ async fn handle_voice_socket( select! { // Receive audio from other users and send to client voice_packet = rx.recv() => { - if let Ok((speaker_uuid, audio_data)) = voice_packet { - if speaker_uuid != my_uuid { - let mut msg = BytesMut::with_capacity(16 + audio_data.len()); - msg.put(speaker_uuid.as_bytes().as_slice()); - msg.put(audio_data); + if let Ok((speaker_uuid, audio_data)) = voice_packet + && speaker_uuid != my_uuid + { + let mut msg = BytesMut::with_capacity(16 + audio_data.len()); + msg.put(speaker_uuid.as_bytes().as_slice()); + msg.put(audio_data); - if socket.send(Message::Binary(msg.freeze().into())).await.is_err() { - break; - } + if socket.send(Message::Binary(msg.freeze())).await.is_err() { + break; } } } @@ -99,7 +99,7 @@ async fn handle_voice_socket( if let Some(Ok(msg)) = client_msg { match msg { Message::Binary(data) => { - let _ = tx.send((my_uuid, Bytes::from(data))); + let _ = tx.send((my_uuid, data)); } Message::Close(_) => { tracing::debug!("Voice client {} disconnected", who);