From 01c4ff2e14dc13984a8432ad6db81c981d484253 Mon Sep 17 00:00:00 2001 From: filipriec Date: Sat, 13 Sep 2025 21:15:44 +0200 Subject: [PATCH] validation backend --- server/src/server/run.rs | 4 ++++ server/src/server/services/mod.rs | 2 ++ .../server/services/table_validation_service.rs | 11 +++++++++++ server/src/table_validation/get/mod.rs | 2 ++ server/src/table_validation/{ => get}/service.rs | 16 ++++++++++++---- server/src/table_validation/mod.rs | 4 ++-- server/src/table_validation/post/mod.rs | 3 +++ server/src/table_validation/{ => post}/repo.rs | 0 8 files changed, 36 insertions(+), 6 deletions(-) create mode 100644 server/src/server/services/table_validation_service.rs create mode 100644 server/src/table_validation/get/mod.rs rename server/src/table_validation/{ => get}/service.rs (85%) create mode 100644 server/src/table_validation/post/mod.rs rename server/src/table_validation/{ => post}/repo.rs (100%) diff --git a/server/src/server/run.rs b/server/src/server/run.rs index 7f9be74..14674fe 100644 --- a/server/src/server/run.rs +++ b/server/src/server/run.rs @@ -16,12 +16,14 @@ use crate::server::services::{ use common::proto::komp_ac::{ table_structure::table_structure_service_server::TableStructureServiceServer, table_definition::table_definition_server::TableDefinitionServer, + table_validation::table_validation_service_server::TableValidationServiceServer, tables_data::tables_data_server::TablesDataServer, table_script::table_script_server::TableScriptServer, auth::auth_service_server::AuthServiceServer, search2::search2_server::Search2Server, }; use search::{SearcherService, SearcherServer}; +use crate::table_validation::post::service::TableValidationSvc; pub async fn run_server(db_pool: sqlx::PgPool) -> Result<(), Box> { // Initialize JWT for authentication @@ -43,6 +45,7 @@ pub async fn run_server(db_pool: sqlx::PgPool) -> Result<(), Box Result<(), Box TableValidationServiceServer { + TableValidationServiceServer::new(TableValidationSvc { db }) +} diff --git a/server/src/table_validation/get/mod.rs b/server/src/table_validation/get/mod.rs new file mode 100644 index 0000000..3ad75e0 --- /dev/null +++ b/server/src/table_validation/get/mod.rs @@ -0,0 +1,2 @@ +// src/table_validation/get/mod.rs +pub mod service; diff --git a/server/src/table_validation/service.rs b/server/src/table_validation/get/service.rs similarity index 85% rename from server/src/table_validation/service.rs rename to server/src/table_validation/get/service.rs index b6aab87..089ab1f 100644 --- a/server/src/table_validation/service.rs +++ b/server/src/table_validation/get/service.rs @@ -1,4 +1,4 @@ -// src/table_validation/service.rs +// src/table_validation/get/service.rs use tonic::{Request, Response, Status}; use sqlx::PgPool; @@ -8,7 +8,7 @@ use common::proto::komp_ac::table_validation::{ GetTableValidationRequest, TableValidationResponse, FieldValidation, CharacterLimits, CountMode as PbCountMode, }; -use crate::table_validation::repo; +use crate::table_validation::post::repo; // repo still lives in post #[derive(Deserialize)] struct FieldConfig { @@ -58,6 +58,14 @@ impl TableValidationService for TableValidationSvc { }; if let Some(cl) = cfg.character_limits { + let min = cl.min.unwrap_or(0); + let max = cl.max.unwrap_or(0); + + // Skip "empty" validations (min=0,max=0,warn_at=None) + if min == 0 && max == 0 && cl.warn_at.is_none() { + continue; + } + let pb_mode = match cl.count_mode.as_deref() { Some("BYTES") => PbCountMode::Bytes as i32, Some("DISPLAY_WIDTH") => PbCountMode::DisplayWidth as i32, @@ -65,8 +73,8 @@ impl TableValidationService for TableValidationSvc { }; let limits = CharacterLimits { - min: cl.min.unwrap_or(0), - max: cl.max.unwrap_or(0), + min, + max, warn_at: cl.warn_at, count_mode: pb_mode, }; diff --git a/server/src/table_validation/mod.rs b/server/src/table_validation/mod.rs index 86a73dc..8af2cc6 100644 --- a/server/src/table_validation/mod.rs +++ b/server/src/table_validation/mod.rs @@ -1,4 +1,4 @@ // src/table_validation/mod.rs -pub mod repo; -pub mod service; +pub mod post; +pub mod get; diff --git a/server/src/table_validation/post/mod.rs b/server/src/table_validation/post/mod.rs new file mode 100644 index 0000000..a929419 --- /dev/null +++ b/server/src/table_validation/post/mod.rs @@ -0,0 +1,3 @@ +// src/table_validation/post/mod.rs + +pub mod repo; diff --git a/server/src/table_validation/repo.rs b/server/src/table_validation/post/repo.rs similarity index 100% rename from server/src/table_validation/repo.rs rename to server/src/table_validation/post/repo.rs