From a96c0ce9f78e859f5c448e4b766f58011d3575c6 Mon Sep 17 00:00:00 2001 From: Sebastian Pravda Date: Thu, 22 Dec 2022 11:37:01 +0100 Subject: [PATCH] feat: code cleanup --- core/src/database/query/session.rs | 11 ++++++++--- core/src/services/admin_service.rs | 14 +++++--------- core/src/services/candidate_service.rs | 18 ++++++------------ 3 files changed, 19 insertions(+), 24 deletions(-) diff --git a/core/src/database/query/session.rs b/core/src/database/query/session.rs index ba2eceb..d7b2b92 100644 --- a/core/src/database/query/session.rs +++ b/core/src/database/query/session.rs @@ -22,11 +22,17 @@ impl Query { } pub async fn find_related_candidate_sessions(db: &DbConn, candidate: candidate::Model) -> Result, DbErr> { - candidate.find_related(Session).all(db).await + candidate.find_related(Session) + .order_by_asc(session::Column::UpdatedAt) + .all(db) + .await } pub async fn find_related_admin_sessions(db: &DbConn, admin: admin::Model) -> Result, DbErr> { - admin.find_related(admin_session::Entity).all(db).await + admin.find_related(admin_session::Entity) + .order_by_asc(admin_session::Column::UpdatedAt) + .all(db) + .await } // find session by user id @@ -50,7 +56,6 @@ impl Query { #[cfg(test)] mod tests { use entity::{session, admin, candidate, admin_session}; - use sea_orm::ActiveValue::NotSet; use sea_orm::{prelude::Uuid, ActiveModelTrait, Set}; use crate::utils::db::get_memory_sqlite_connection; diff --git a/core/src/services/admin_service.rs b/core/src/services/admin_service.rs index 4b53d73..6d30950 100644 --- a/core/src/services/admin_service.rs +++ b/core/src/services/admin_service.rs @@ -82,8 +82,7 @@ impl AuthenticableTrait for AdminService { let session = Mutation::insert_admin_session(db, admin.id, random_uuid, ip_addr).await?; - Self::delete_old_sessions(db, admin, 1) - .await?; + Self::delete_old_sessions(db, admin, 1).await?; Ok(session.id.to_string()) } @@ -92,14 +91,11 @@ impl AuthenticableTrait for AdminService { admin: admin::Model, keep_n_recent: usize, ) -> Result<(), ServiceError> { - let mut sessions = Query::find_related_admin_sessions(db, admin) - .await?; - - sessions.sort_by_key(|s| s.created_at); - - let sessions = sessions.iter() + let sessions = Query::find_related_admin_sessions(db, admin) + .await? + .iter() .map(|s| s.clone().into_active_model()) - .collect::>(); + .collect(); SessionService::delete_sessions(db, sessions, keep_n_recent).await?; Ok(()) diff --git a/core/src/services/candidate_service.rs b/core/src/services/candidate_service.rs index 669a23c..b1f0bab 100644 --- a/core/src/services/candidate_service.rs +++ b/core/src/services/candidate_service.rs @@ -250,8 +250,7 @@ impl AuthenticableTrait for CandidateService { .await? .ok_or(ServiceError::CandidateNotFound)?; - let session_id = Self::new_session(db, candidate.clone(), password.clone(), ip_addr) - .await?; + let session_id = Self::new_session(db, candidate.clone(), password.clone(), ip_addr).await?; let private_key = Self::decrypt_private_key(candidate, password).await?; Ok((session_id, private_key)) @@ -296,9 +295,7 @@ impl AuthenticableTrait for CandidateService { let session = Mutation::insert_candidate_session(db, random_uuid, candidate.application, ip_addr).await?; - Self::delete_old_sessions(db, candidate, 3) - .await - .ok(); + Self::delete_old_sessions(db, candidate, 3).await?; Ok(session.id.to_string()) } @@ -307,14 +304,11 @@ impl AuthenticableTrait for CandidateService { candidate: candidate::Model, keep_n_recent: usize, ) -> Result<(), ServiceError> { - let mut sessions = Query::find_related_candidate_sessions(db, candidate) - .await?; - - sessions.sort_by_key(|s| s.created_at); - - let sessions = sessions.iter() + let sessions = Query::find_related_candidate_sessions(db, candidate) + .await? + .iter() .map(|s| s.clone().into_active_model()) - .collect::>(); + .collect(); SessionService::delete_sessions(db, sessions, keep_n_recent).await?; Ok(())