From ceb560c65867dce0d9b7a939026a96f6a27e108b Mon Sep 17 00:00:00 2001 From: Priec Date: Sun, 14 Sep 2025 11:24:27 +0200 Subject: [PATCH] serialization of the gRPC JSONB now fully works for the validation --- common/build.rs | 17 +- common/proto/table_validation.proto | 18 +- common/src/proto/descriptor.bin | Bin 33072 -> 33062 bytes common/src/proto/komp_ac.table_validation.rs | 3 +- common/src/proto/multieko2.adresar.rs | 791 ----------------- common/src/proto/multieko2.auth.rs | 418 --------- common/src/proto/multieko2.common.rs | 13 - common/src/proto/multieko2.search.rs | 317 ------- .../src/proto/multieko2.table_definition.rs | 544 ------------ common/src/proto/multieko2.table_script.rs | 323 ------- common/src/proto/multieko2.table_structure.rs | 336 -------- common/src/proto/multieko2.tables_data.rs | 797 ------------------ common/src/proto/multieko2.uctovnictvo.rs | 721 ---------------- server/src/table_validation/get/service.rs | 17 +- 14 files changed, 25 insertions(+), 4290 deletions(-) delete mode 100644 common/src/proto/multieko2.adresar.rs delete mode 100644 common/src/proto/multieko2.auth.rs delete mode 100644 common/src/proto/multieko2.common.rs delete mode 100644 common/src/proto/multieko2.search.rs delete mode 100644 common/src/proto/multieko2.table_definition.rs delete mode 100644 common/src/proto/multieko2.table_script.rs delete mode 100644 common/src/proto/multieko2.table_structure.rs delete mode 100644 common/src/proto/multieko2.tables_data.rs delete mode 100644 common/src/proto/multieko2.uctovnictvo.rs diff --git a/common/build.rs b/common/build.rs index 2903de1..e7d026a 100644 --- a/common/build.rs +++ b/common/build.rs @@ -1,10 +1,9 @@ -// common/build.rs fn main() -> Result<(), Box> { tonic_build::configure() .build_server(true) .file_descriptor_set_path("src/proto/descriptor.bin") .out_dir("src/proto") - // Derive serde for all relevant messages + // Derive serde for the messages .type_attribute( ".komp_ac.table_validation.FieldValidation", "#[derive(serde::Serialize, serde::Deserialize)]", @@ -25,21 +24,11 @@ fn main() -> Result<(), Box> { ".komp_ac.table_validation.UpdateFieldValidationResponse", "#[derive(serde::Serialize, serde::Deserialize)]", ) - // Derive serde for the enum and keep legacy string values in JSON + // Enum -> readable strings in JSON ("BYTES", "DISPLAY_WIDTH") .type_attribute( ".komp_ac.table_validation.CountMode", - "#[derive(serde::Serialize, serde::Deserialize)]", + "#[derive(serde::Serialize, serde::Deserialize)] #[serde(rename_all = \"SCREAMING_SNAKE_CASE\")]", ) - .type_attribute( - ".komp_ac.table_validation.CountMode", - r#"#[serde(rename_all = "SCREAMING_SNAKE_CASE")]"#, - ) - // Back-compat: allow old "character_limits" key to deserialize into "limits" - .field_attribute( - ".komp_ac.table_validation.FieldValidation.limits", - r#"#[serde(alias = "character_limits")]"#, - ) - // Compile all protos (same list you already have) .compile_protos( &[ "proto/common.proto", diff --git a/common/proto/table_validation.proto b/common/proto/table_validation.proto index 0a1a2b3..1952307 100644 --- a/common/proto/table_validation.proto +++ b/common/proto/table_validation.proto @@ -4,8 +4,8 @@ package komp_ac.table_validation; // Request validation rules for a table message GetTableValidationRequest { - string profile_name = 1; - string table_name = 2; + string profileName = 1; + string tableName = 2; } // Response with field-level validations; if a field is omitted, @@ -16,8 +16,8 @@ message TableValidationResponse { // Field-level validation (extensible for future kinds) message FieldValidation { - // MUST match your frontend FormState.data_key for the column - string data_key = 1; + // MUST match your frontend FormState.dataKey for the column + string dataKey = 1; // Current: only CharacterLimits. More rules can be added later. CharacterLimits limits = 10; @@ -44,9 +44,9 @@ message CharacterLimits { uint32 max = 2; // Optional warning threshold; when unset, no warning threshold is applied. - optional uint32 warn_at = 3; + optional uint32 warnAt = 3; - CountMode count_mode = 4; // defaults to CHARS if unspecified + CountMode countMode = 4; // defaults to CHARS if unspecified } // Service to fetch validations for a table @@ -59,9 +59,9 @@ service TableValidationService { } message UpdateFieldValidationRequest { - string profile_name = 1; - string table_name = 2; - string data_key = 3; + string profileName = 1; + string tableName = 2; + string dataKey = 3; FieldValidation validation = 4; } diff --git a/common/src/proto/descriptor.bin b/common/src/proto/descriptor.bin index 35543cccc84fe85f2666c0f9c7210e62d0194e3e..d552ef0644e8ff0cdfc198233176d076ef0813c0 100644 GIT binary patch delta 552 zcmaivy-vbV7=}6L6tD*cEiDv_hTy`YC^2zRAO%yJhz$6%7(=R*goJ=UC9cLrN0aXY zWYWomgiBy^Fpge;x8UwqEOB&v&ilS!o-@3o&v$hAq?211=$n}no~YQ)p>@`=kF8F- zX*um)w{Bnd?Q2I$@zBLpuhs6@HAto7Vv>uF+pK|}mLXSaXk8vL+IFY;x0O^L#4FYw zyq1p009bizL*s!P>#D0eDoc^foaw83{6L7LbMd^_?>hUvrmYH?hjT0NQPSX{EJs8h zZ2V5sW5ScLY{VD-cT;Aj5+ivxL&+E9jYpDzcSAE|KFj@rkNTLz0&$gxxPU|?7Nl`6 zB7T=Y*6AX=RErVCD=_y>O~7~c(^cQs4t~{z$<@54F1YFiPaOf( m3!XZXn|bO;c(9yK)Gx@Ho4A6XMPPjpvxm`4v7@tlyahqTv#l^$L%EG|Jz$(Pd#>4^RF#>s< zqA(sakS8I@#m&V6R0)(~XOfuw$4#1F7^;8~sDNEee6yOn0wbR%P!$ssgAlVYlbDpv z, } /// Character limit validation (Validation 1) diff --git a/common/src/proto/multieko2.adresar.rs b/common/src/proto/multieko2.adresar.rs deleted file mode 100644 index 44fd0ee..0000000 --- a/common/src/proto/multieko2.adresar.rs +++ /dev/null @@ -1,791 +0,0 @@ -// This file is @generated by prost-build. -#[derive(Clone, Copy, PartialEq, ::prost::Message)] -pub struct GetAdresarRequest { - #[prost(int64, tag = "1")] - pub id: i64, -} -#[derive(Clone, Copy, PartialEq, ::prost::Message)] -pub struct DeleteAdresarRequest { - #[prost(int64, tag = "1")] - pub id: i64, -} -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct PostAdresarRequest { - #[prost(string, tag = "1")] - pub firma: ::prost::alloc::string::String, - #[prost(string, tag = "2")] - pub kz: ::prost::alloc::string::String, - #[prost(string, tag = "3")] - pub drc: ::prost::alloc::string::String, - #[prost(string, tag = "4")] - pub ulica: ::prost::alloc::string::String, - #[prost(string, tag = "5")] - pub psc: ::prost::alloc::string::String, - #[prost(string, tag = "6")] - pub mesto: ::prost::alloc::string::String, - #[prost(string, tag = "7")] - pub stat: ::prost::alloc::string::String, - #[prost(string, tag = "8")] - pub banka: ::prost::alloc::string::String, - #[prost(string, tag = "9")] - pub ucet: ::prost::alloc::string::String, - #[prost(string, tag = "10")] - pub skladm: ::prost::alloc::string::String, - #[prost(string, tag = "11")] - pub ico: ::prost::alloc::string::String, - #[prost(string, tag = "12")] - pub kontakt: ::prost::alloc::string::String, - #[prost(string, tag = "13")] - pub telefon: ::prost::alloc::string::String, - #[prost(string, tag = "14")] - pub skladu: ::prost::alloc::string::String, - #[prost(string, tag = "15")] - pub fax: ::prost::alloc::string::String, -} -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct AdresarResponse { - #[prost(int64, tag = "1")] - pub id: i64, - #[prost(string, tag = "2")] - pub firma: ::prost::alloc::string::String, - #[prost(string, tag = "3")] - pub kz: ::prost::alloc::string::String, - #[prost(string, tag = "4")] - pub drc: ::prost::alloc::string::String, - #[prost(string, tag = "5")] - pub ulica: ::prost::alloc::string::String, - #[prost(string, tag = "6")] - pub psc: ::prost::alloc::string::String, - #[prost(string, tag = "7")] - pub mesto: ::prost::alloc::string::String, - #[prost(string, tag = "8")] - pub stat: ::prost::alloc::string::String, - #[prost(string, tag = "9")] - pub banka: ::prost::alloc::string::String, - #[prost(string, tag = "10")] - pub ucet: ::prost::alloc::string::String, - #[prost(string, tag = "11")] - pub skladm: ::prost::alloc::string::String, - #[prost(string, tag = "12")] - pub ico: ::prost::alloc::string::String, - #[prost(string, tag = "13")] - pub kontakt: ::prost::alloc::string::String, - #[prost(string, tag = "14")] - pub telefon: ::prost::alloc::string::String, - #[prost(string, tag = "15")] - pub skladu: ::prost::alloc::string::String, - #[prost(string, tag = "16")] - pub fax: ::prost::alloc::string::String, -} -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct PutAdresarRequest { - #[prost(int64, tag = "1")] - pub id: i64, - #[prost(string, tag = "2")] - pub firma: ::prost::alloc::string::String, - #[prost(string, tag = "3")] - pub kz: ::prost::alloc::string::String, - #[prost(string, tag = "4")] - pub drc: ::prost::alloc::string::String, - #[prost(string, tag = "5")] - pub ulica: ::prost::alloc::string::String, - #[prost(string, tag = "6")] - pub psc: ::prost::alloc::string::String, - #[prost(string, tag = "7")] - pub mesto: ::prost::alloc::string::String, - #[prost(string, tag = "8")] - pub stat: ::prost::alloc::string::String, - #[prost(string, tag = "9")] - pub banka: ::prost::alloc::string::String, - #[prost(string, tag = "10")] - pub ucet: ::prost::alloc::string::String, - #[prost(string, tag = "11")] - pub skladm: ::prost::alloc::string::String, - #[prost(string, tag = "12")] - pub ico: ::prost::alloc::string::String, - #[prost(string, tag = "13")] - pub kontakt: ::prost::alloc::string::String, - #[prost(string, tag = "14")] - pub telefon: ::prost::alloc::string::String, - #[prost(string, tag = "15")] - pub skladu: ::prost::alloc::string::String, - #[prost(string, tag = "16")] - pub fax: ::prost::alloc::string::String, -} -#[derive(Clone, Copy, PartialEq, ::prost::Message)] -pub struct DeleteAdresarResponse { - #[prost(bool, tag = "1")] - pub success: bool, -} -/// Generated client implementations. -pub mod adresar_client { - #![allow( - unused_variables, - dead_code, - missing_docs, - clippy::wildcard_imports, - clippy::let_unit_value, - )] - use tonic::codegen::*; - use tonic::codegen::http::Uri; - #[derive(Debug, Clone)] - pub struct AdresarClient { - inner: tonic::client::Grpc, - } - impl AdresarClient { - /// Attempt to create a new client by connecting to a given endpoint. - pub async fn connect(dst: D) -> Result - where - D: TryInto, - D::Error: Into, - { - let conn = tonic::transport::Endpoint::new(dst)?.connect().await?; - Ok(Self::new(conn)) - } - } - impl AdresarClient - where - T: tonic::client::GrpcService, - T::Error: Into, - T::ResponseBody: Body + std::marker::Send + 'static, - ::Error: Into + std::marker::Send, - { - pub fn new(inner: T) -> Self { - let inner = tonic::client::Grpc::new(inner); - Self { inner } - } - pub fn with_origin(inner: T, origin: Uri) -> Self { - let inner = tonic::client::Grpc::with_origin(inner, origin); - Self { inner } - } - pub fn with_interceptor( - inner: T, - interceptor: F, - ) -> AdresarClient> - where - F: tonic::service::Interceptor, - T::ResponseBody: Default, - T: tonic::codegen::Service< - http::Request, - Response = http::Response< - >::ResponseBody, - >, - >, - , - >>::Error: Into + std::marker::Send + std::marker::Sync, - { - AdresarClient::new(InterceptedService::new(inner, interceptor)) - } - /// Compress requests with the given encoding. - /// - /// This requires the server to support it otherwise it might respond with an - /// error. - #[must_use] - pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.inner = self.inner.send_compressed(encoding); - self - } - /// Enable decompressing responses. - #[must_use] - pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.inner = self.inner.accept_compressed(encoding); - self - } - /// Limits the maximum size of a decoded message. - /// - /// Default: `4MB` - #[must_use] - pub fn max_decoding_message_size(mut self, limit: usize) -> Self { - self.inner = self.inner.max_decoding_message_size(limit); - self - } - /// Limits the maximum size of an encoded message. - /// - /// Default: `usize::MAX` - #[must_use] - pub fn max_encoding_message_size(mut self, limit: usize) -> Self { - self.inner = self.inner.max_encoding_message_size(limit); - self - } - pub async fn post_adresar( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::unknown( - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/komp_ac.adresar.Adresar/PostAdresar", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert(GrpcMethod::new("komp_ac.adresar.Adresar", "PostAdresar")); - self.inner.unary(req, path, codec).await - } - pub async fn get_adresar( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::unknown( - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/komp_ac.adresar.Adresar/GetAdresar", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert(GrpcMethod::new("komp_ac.adresar.Adresar", "GetAdresar")); - self.inner.unary(req, path, codec).await - } - pub async fn put_adresar( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::unknown( - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/komp_ac.adresar.Adresar/PutAdresar", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert(GrpcMethod::new("komp_ac.adresar.Adresar", "PutAdresar")); - self.inner.unary(req, path, codec).await - } - pub async fn delete_adresar( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::unknown( - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/komp_ac.adresar.Adresar/DeleteAdresar", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert(GrpcMethod::new("komp_ac.adresar.Adresar", "DeleteAdresar")); - self.inner.unary(req, path, codec).await - } - pub async fn get_adresar_count( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::unknown( - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/komp_ac.adresar.Adresar/GetAdresarCount", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert(GrpcMethod::new("komp_ac.adresar.Adresar", "GetAdresarCount")); - self.inner.unary(req, path, codec).await - } - pub async fn get_adresar_by_position( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::unknown( - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/komp_ac.adresar.Adresar/GetAdresarByPosition", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert( - GrpcMethod::new("komp_ac.adresar.Adresar", "GetAdresarByPosition"), - ); - self.inner.unary(req, path, codec).await - } - } -} -/// Generated server implementations. -pub mod adresar_server { - #![allow( - unused_variables, - dead_code, - missing_docs, - clippy::wildcard_imports, - clippy::let_unit_value, - )] - use tonic::codegen::*; - /// Generated trait containing gRPC methods that should be implemented for use with AdresarServer. - #[async_trait] - pub trait Adresar: std::marker::Send + std::marker::Sync + 'static { - async fn post_adresar( - &self, - request: tonic::Request, - ) -> std::result::Result, tonic::Status>; - async fn get_adresar( - &self, - request: tonic::Request, - ) -> std::result::Result, tonic::Status>; - async fn put_adresar( - &self, - request: tonic::Request, - ) -> std::result::Result, tonic::Status>; - async fn delete_adresar( - &self, - request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; - async fn get_adresar_count( - &self, - request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; - async fn get_adresar_by_position( - &self, - request: tonic::Request, - ) -> std::result::Result, tonic::Status>; - } - #[derive(Debug)] - pub struct AdresarServer { - inner: Arc, - accept_compression_encodings: EnabledCompressionEncodings, - send_compression_encodings: EnabledCompressionEncodings, - max_decoding_message_size: Option, - max_encoding_message_size: Option, - } - impl AdresarServer { - pub fn new(inner: T) -> Self { - Self::from_arc(Arc::new(inner)) - } - pub fn from_arc(inner: Arc) -> Self { - Self { - inner, - accept_compression_encodings: Default::default(), - send_compression_encodings: Default::default(), - max_decoding_message_size: None, - max_encoding_message_size: None, - } - } - pub fn with_interceptor( - inner: T, - interceptor: F, - ) -> InterceptedService - where - F: tonic::service::Interceptor, - { - InterceptedService::new(Self::new(inner), interceptor) - } - /// Enable decompressing requests with the given encoding. - #[must_use] - pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.accept_compression_encodings.enable(encoding); - self - } - /// Compress responses with the given encoding, if the client supports it. - #[must_use] - pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.send_compression_encodings.enable(encoding); - self - } - /// Limits the maximum size of a decoded message. - /// - /// Default: `4MB` - #[must_use] - pub fn max_decoding_message_size(mut self, limit: usize) -> Self { - self.max_decoding_message_size = Some(limit); - self - } - /// Limits the maximum size of an encoded message. - /// - /// Default: `usize::MAX` - #[must_use] - pub fn max_encoding_message_size(mut self, limit: usize) -> Self { - self.max_encoding_message_size = Some(limit); - self - } - } - impl tonic::codegen::Service> for AdresarServer - where - T: Adresar, - B: Body + std::marker::Send + 'static, - B::Error: Into + std::marker::Send + 'static, - { - type Response = http::Response; - type Error = std::convert::Infallible; - type Future = BoxFuture; - fn poll_ready( - &mut self, - _cx: &mut Context<'_>, - ) -> Poll> { - Poll::Ready(Ok(())) - } - fn call(&mut self, req: http::Request) -> Self::Future { - match req.uri().path() { - "/komp_ac.adresar.Adresar/PostAdresar" => { - #[allow(non_camel_case_types)] - struct PostAdresarSvc(pub Arc); - impl< - T: Adresar, - > tonic::server::UnaryService - for PostAdresarSvc { - type Response = super::AdresarResponse; - type Future = BoxFuture< - tonic::Response, - tonic::Status, - >; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::post_adresar(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = PostAdresarSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/komp_ac.adresar.Adresar/GetAdresar" => { - #[allow(non_camel_case_types)] - struct GetAdresarSvc(pub Arc); - impl< - T: Adresar, - > tonic::server::UnaryService - for GetAdresarSvc { - type Response = super::AdresarResponse; - type Future = BoxFuture< - tonic::Response, - tonic::Status, - >; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::get_adresar(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = GetAdresarSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/komp_ac.adresar.Adresar/PutAdresar" => { - #[allow(non_camel_case_types)] - struct PutAdresarSvc(pub Arc); - impl< - T: Adresar, - > tonic::server::UnaryService - for PutAdresarSvc { - type Response = super::AdresarResponse; - type Future = BoxFuture< - tonic::Response, - tonic::Status, - >; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::put_adresar(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = PutAdresarSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/komp_ac.adresar.Adresar/DeleteAdresar" => { - #[allow(non_camel_case_types)] - struct DeleteAdresarSvc(pub Arc); - impl< - T: Adresar, - > tonic::server::UnaryService - for DeleteAdresarSvc { - type Response = super::DeleteAdresarResponse; - type Future = BoxFuture< - tonic::Response, - tonic::Status, - >; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::delete_adresar(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = DeleteAdresarSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/komp_ac.adresar.Adresar/GetAdresarCount" => { - #[allow(non_camel_case_types)] - struct GetAdresarCountSvc(pub Arc); - impl< - T: Adresar, - > tonic::server::UnaryService - for GetAdresarCountSvc { - type Response = super::super::common::CountResponse; - type Future = BoxFuture< - tonic::Response, - tonic::Status, - >; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::get_adresar_count(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = GetAdresarCountSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/komp_ac.adresar.Adresar/GetAdresarByPosition" => { - #[allow(non_camel_case_types)] - struct GetAdresarByPositionSvc(pub Arc); - impl< - T: Adresar, - > tonic::server::UnaryService - for GetAdresarByPositionSvc { - type Response = super::AdresarResponse; - type Future = BoxFuture< - tonic::Response, - tonic::Status, - >; - fn call( - &mut self, - request: tonic::Request< - super::super::common::PositionRequest, - >, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::get_adresar_by_position(&inner, request) - .await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = GetAdresarByPositionSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - _ => { - Box::pin(async move { - let mut response = http::Response::new( - tonic::body::Body::default(), - ); - let headers = response.headers_mut(); - headers - .insert( - tonic::Status::GRPC_STATUS, - (tonic::Code::Unimplemented as i32).into(), - ); - headers - .insert( - http::header::CONTENT_TYPE, - tonic::metadata::GRPC_CONTENT_TYPE, - ); - Ok(response) - }) - } - } - } - } - impl Clone for AdresarServer { - fn clone(&self) -> Self { - let inner = self.inner.clone(); - Self { - inner, - accept_compression_encodings: self.accept_compression_encodings, - send_compression_encodings: self.send_compression_encodings, - max_decoding_message_size: self.max_decoding_message_size, - max_encoding_message_size: self.max_encoding_message_size, - } - } - } - /// Generated gRPC service name - pub const SERVICE_NAME: &str = "komp_ac.adresar.Adresar"; - impl tonic::server::NamedService for AdresarServer { - const NAME: &'static str = SERVICE_NAME; - } -} diff --git a/common/src/proto/multieko2.auth.rs b/common/src/proto/multieko2.auth.rs deleted file mode 100644 index 8219527..0000000 --- a/common/src/proto/multieko2.auth.rs +++ /dev/null @@ -1,418 +0,0 @@ -// This file is @generated by prost-build. -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct RegisterRequest { - #[prost(string, tag = "1")] - pub username: ::prost::alloc::string::String, - #[prost(string, tag = "2")] - pub email: ::prost::alloc::string::String, - #[prost(string, tag = "3")] - pub password: ::prost::alloc::string::String, - #[prost(string, tag = "4")] - pub password_confirmation: ::prost::alloc::string::String, - #[prost(string, tag = "5")] - pub role: ::prost::alloc::string::String, -} -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct AuthResponse { - /// UUID in string format - #[prost(string, tag = "1")] - pub id: ::prost::alloc::string::String, - /// Registered username - #[prost(string, tag = "2")] - pub username: ::prost::alloc::string::String, - /// Registered email (if provided) - #[prost(string, tag = "3")] - pub email: ::prost::alloc::string::String, - /// Default role: 'accountant' - #[prost(string, tag = "4")] - pub role: ::prost::alloc::string::String, -} -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct LoginRequest { - /// Can be username or email - #[prost(string, tag = "1")] - pub identifier: ::prost::alloc::string::String, - #[prost(string, tag = "2")] - pub password: ::prost::alloc::string::String, -} -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct LoginResponse { - /// JWT token - #[prost(string, tag = "1")] - pub access_token: ::prost::alloc::string::String, - /// Usually "Bearer" - #[prost(string, tag = "2")] - pub token_type: ::prost::alloc::string::String, - /// Expiration in seconds (86400 for 24 hours) - #[prost(int32, tag = "3")] - pub expires_in: i32, - /// User's UUID in string format - #[prost(string, tag = "4")] - pub user_id: ::prost::alloc::string::String, - /// User's role - #[prost(string, tag = "5")] - pub role: ::prost::alloc::string::String, - #[prost(string, tag = "6")] - pub username: ::prost::alloc::string::String, -} -/// Generated client implementations. -pub mod auth_service_client { - #![allow( - unused_variables, - dead_code, - missing_docs, - clippy::wildcard_imports, - clippy::let_unit_value, - )] - use tonic::codegen::*; - use tonic::codegen::http::Uri; - #[derive(Debug, Clone)] - pub struct AuthServiceClient { - inner: tonic::client::Grpc, - } - impl AuthServiceClient { - /// Attempt to create a new client by connecting to a given endpoint. - pub async fn connect(dst: D) -> Result - where - D: TryInto, - D::Error: Into, - { - let conn = tonic::transport::Endpoint::new(dst)?.connect().await?; - Ok(Self::new(conn)) - } - } - impl AuthServiceClient - where - T: tonic::client::GrpcService, - T::Error: Into, - T::ResponseBody: Body + std::marker::Send + 'static, - ::Error: Into + std::marker::Send, - { - pub fn new(inner: T) -> Self { - let inner = tonic::client::Grpc::new(inner); - Self { inner } - } - pub fn with_origin(inner: T, origin: Uri) -> Self { - let inner = tonic::client::Grpc::with_origin(inner, origin); - Self { inner } - } - pub fn with_interceptor( - inner: T, - interceptor: F, - ) -> AuthServiceClient> - where - F: tonic::service::Interceptor, - T::ResponseBody: Default, - T: tonic::codegen::Service< - http::Request, - Response = http::Response< - >::ResponseBody, - >, - >, - , - >>::Error: Into + std::marker::Send + std::marker::Sync, - { - AuthServiceClient::new(InterceptedService::new(inner, interceptor)) - } - /// Compress requests with the given encoding. - /// - /// This requires the server to support it otherwise it might respond with an - /// error. - #[must_use] - pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.inner = self.inner.send_compressed(encoding); - self - } - /// Enable decompressing responses. - #[must_use] - pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.inner = self.inner.accept_compressed(encoding); - self - } - /// Limits the maximum size of a decoded message. - /// - /// Default: `4MB` - #[must_use] - pub fn max_decoding_message_size(mut self, limit: usize) -> Self { - self.inner = self.inner.max_decoding_message_size(limit); - self - } - /// Limits the maximum size of an encoded message. - /// - /// Default: `usize::MAX` - #[must_use] - pub fn max_encoding_message_size(mut self, limit: usize) -> Self { - self.inner = self.inner.max_encoding_message_size(limit); - self - } - pub async fn register( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result, tonic::Status> { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::unknown( - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/komp_ac.auth.AuthService/Register", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert(GrpcMethod::new("komp_ac.auth.AuthService", "Register")); - self.inner.unary(req, path, codec).await - } - pub async fn login( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result, tonic::Status> { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::unknown( - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/komp_ac.auth.AuthService/Login", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert(GrpcMethod::new("komp_ac.auth.AuthService", "Login")); - self.inner.unary(req, path, codec).await - } - } -} -/// Generated server implementations. -pub mod auth_service_server { - #![allow( - unused_variables, - dead_code, - missing_docs, - clippy::wildcard_imports, - clippy::let_unit_value, - )] - use tonic::codegen::*; - /// Generated trait containing gRPC methods that should be implemented for use with AuthServiceServer. - #[async_trait] - pub trait AuthService: std::marker::Send + std::marker::Sync + 'static { - async fn register( - &self, - request: tonic::Request, - ) -> std::result::Result, tonic::Status>; - async fn login( - &self, - request: tonic::Request, - ) -> std::result::Result, tonic::Status>; - } - #[derive(Debug)] - pub struct AuthServiceServer { - inner: Arc, - accept_compression_encodings: EnabledCompressionEncodings, - send_compression_encodings: EnabledCompressionEncodings, - max_decoding_message_size: Option, - max_encoding_message_size: Option, - } - impl AuthServiceServer { - pub fn new(inner: T) -> Self { - Self::from_arc(Arc::new(inner)) - } - pub fn from_arc(inner: Arc) -> Self { - Self { - inner, - accept_compression_encodings: Default::default(), - send_compression_encodings: Default::default(), - max_decoding_message_size: None, - max_encoding_message_size: None, - } - } - pub fn with_interceptor( - inner: T, - interceptor: F, - ) -> InterceptedService - where - F: tonic::service::Interceptor, - { - InterceptedService::new(Self::new(inner), interceptor) - } - /// Enable decompressing requests with the given encoding. - #[must_use] - pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.accept_compression_encodings.enable(encoding); - self - } - /// Compress responses with the given encoding, if the client supports it. - #[must_use] - pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.send_compression_encodings.enable(encoding); - self - } - /// Limits the maximum size of a decoded message. - /// - /// Default: `4MB` - #[must_use] - pub fn max_decoding_message_size(mut self, limit: usize) -> Self { - self.max_decoding_message_size = Some(limit); - self - } - /// Limits the maximum size of an encoded message. - /// - /// Default: `usize::MAX` - #[must_use] - pub fn max_encoding_message_size(mut self, limit: usize) -> Self { - self.max_encoding_message_size = Some(limit); - self - } - } - impl tonic::codegen::Service> for AuthServiceServer - where - T: AuthService, - B: Body + std::marker::Send + 'static, - B::Error: Into + std::marker::Send + 'static, - { - type Response = http::Response; - type Error = std::convert::Infallible; - type Future = BoxFuture; - fn poll_ready( - &mut self, - _cx: &mut Context<'_>, - ) -> Poll> { - Poll::Ready(Ok(())) - } - fn call(&mut self, req: http::Request) -> Self::Future { - match req.uri().path() { - "/komp_ac.auth.AuthService/Register" => { - #[allow(non_camel_case_types)] - struct RegisterSvc(pub Arc); - impl< - T: AuthService, - > tonic::server::UnaryService - for RegisterSvc { - type Response = super::AuthResponse; - type Future = BoxFuture< - tonic::Response, - tonic::Status, - >; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::register(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = RegisterSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/komp_ac.auth.AuthService/Login" => { - #[allow(non_camel_case_types)] - struct LoginSvc(pub Arc); - impl tonic::server::UnaryService - for LoginSvc { - type Response = super::LoginResponse; - type Future = BoxFuture< - tonic::Response, - tonic::Status, - >; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::login(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = LoginSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - _ => { - Box::pin(async move { - let mut response = http::Response::new( - tonic::body::Body::default(), - ); - let headers = response.headers_mut(); - headers - .insert( - tonic::Status::GRPC_STATUS, - (tonic::Code::Unimplemented as i32).into(), - ); - headers - .insert( - http::header::CONTENT_TYPE, - tonic::metadata::GRPC_CONTENT_TYPE, - ); - Ok(response) - }) - } - } - } - } - impl Clone for AuthServiceServer { - fn clone(&self) -> Self { - let inner = self.inner.clone(); - Self { - inner, - accept_compression_encodings: self.accept_compression_encodings, - send_compression_encodings: self.send_compression_encodings, - max_decoding_message_size: self.max_decoding_message_size, - max_encoding_message_size: self.max_encoding_message_size, - } - } - } - /// Generated gRPC service name - pub const SERVICE_NAME: &str = "komp_ac.auth.AuthService"; - impl tonic::server::NamedService for AuthServiceServer { - const NAME: &'static str = SERVICE_NAME; - } -} diff --git a/common/src/proto/multieko2.common.rs b/common/src/proto/multieko2.common.rs deleted file mode 100644 index 10aa25f..0000000 --- a/common/src/proto/multieko2.common.rs +++ /dev/null @@ -1,13 +0,0 @@ -// This file is @generated by prost-build. -#[derive(Clone, Copy, PartialEq, ::prost::Message)] -pub struct Empty {} -#[derive(Clone, Copy, PartialEq, ::prost::Message)] -pub struct CountResponse { - #[prost(int64, tag = "1")] - pub count: i64, -} -#[derive(Clone, Copy, PartialEq, ::prost::Message)] -pub struct PositionRequest { - #[prost(int64, tag = "1")] - pub position: i64, -} diff --git a/common/src/proto/multieko2.search.rs b/common/src/proto/multieko2.search.rs deleted file mode 100644 index ef1bd31..0000000 --- a/common/src/proto/multieko2.search.rs +++ /dev/null @@ -1,317 +0,0 @@ -// This file is @generated by prost-build. -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct SearchRequest { - #[prost(string, tag = "1")] - pub table_name: ::prost::alloc::string::String, - #[prost(string, tag = "2")] - pub query: ::prost::alloc::string::String, -} -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct SearchResponse { - #[prost(message, repeated, tag = "1")] - pub hits: ::prost::alloc::vec::Vec, -} -/// Nested message and enum types in `SearchResponse`. -pub mod search_response { - #[derive(Clone, PartialEq, ::prost::Message)] - pub struct Hit { - /// PostgreSQL row ID - #[prost(int64, tag = "1")] - pub id: i64, - #[prost(float, tag = "2")] - pub score: f32, - #[prost(string, tag = "3")] - pub content_json: ::prost::alloc::string::String, - } -} -/// Generated client implementations. -pub mod searcher_client { - #![allow( - unused_variables, - dead_code, - missing_docs, - clippy::wildcard_imports, - clippy::let_unit_value, - )] - use tonic::codegen::*; - use tonic::codegen::http::Uri; - #[derive(Debug, Clone)] - pub struct SearcherClient { - inner: tonic::client::Grpc, - } - impl SearcherClient { - /// Attempt to create a new client by connecting to a given endpoint. - pub async fn connect(dst: D) -> Result - where - D: TryInto, - D::Error: Into, - { - let conn = tonic::transport::Endpoint::new(dst)?.connect().await?; - Ok(Self::new(conn)) - } - } - impl SearcherClient - where - T: tonic::client::GrpcService, - T::Error: Into, - T::ResponseBody: Body + std::marker::Send + 'static, - ::Error: Into + std::marker::Send, - { - pub fn new(inner: T) -> Self { - let inner = tonic::client::Grpc::new(inner); - Self { inner } - } - pub fn with_origin(inner: T, origin: Uri) -> Self { - let inner = tonic::client::Grpc::with_origin(inner, origin); - Self { inner } - } - pub fn with_interceptor( - inner: T, - interceptor: F, - ) -> SearcherClient> - where - F: tonic::service::Interceptor, - T::ResponseBody: Default, - T: tonic::codegen::Service< - http::Request, - Response = http::Response< - >::ResponseBody, - >, - >, - , - >>::Error: Into + std::marker::Send + std::marker::Sync, - { - SearcherClient::new(InterceptedService::new(inner, interceptor)) - } - /// Compress requests with the given encoding. - /// - /// This requires the server to support it otherwise it might respond with an - /// error. - #[must_use] - pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.inner = self.inner.send_compressed(encoding); - self - } - /// Enable decompressing responses. - #[must_use] - pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.inner = self.inner.accept_compressed(encoding); - self - } - /// Limits the maximum size of a decoded message. - /// - /// Default: `4MB` - #[must_use] - pub fn max_decoding_message_size(mut self, limit: usize) -> Self { - self.inner = self.inner.max_decoding_message_size(limit); - self - } - /// Limits the maximum size of an encoded message. - /// - /// Default: `usize::MAX` - #[must_use] - pub fn max_encoding_message_size(mut self, limit: usize) -> Self { - self.inner = self.inner.max_encoding_message_size(limit); - self - } - pub async fn search_table( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result, tonic::Status> { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::unknown( - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/komp_ac.search.Searcher/SearchTable", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert(GrpcMethod::new("komp_ac.search.Searcher", "SearchTable")); - self.inner.unary(req, path, codec).await - } - } -} -/// Generated server implementations. -pub mod searcher_server { - #![allow( - unused_variables, - dead_code, - missing_docs, - clippy::wildcard_imports, - clippy::let_unit_value, - )] - use tonic::codegen::*; - /// Generated trait containing gRPC methods that should be implemented for use with SearcherServer. - #[async_trait] - pub trait Searcher: std::marker::Send + std::marker::Sync + 'static { - async fn search_table( - &self, - request: tonic::Request, - ) -> std::result::Result, tonic::Status>; - } - #[derive(Debug)] - pub struct SearcherServer { - inner: Arc, - accept_compression_encodings: EnabledCompressionEncodings, - send_compression_encodings: EnabledCompressionEncodings, - max_decoding_message_size: Option, - max_encoding_message_size: Option, - } - impl SearcherServer { - pub fn new(inner: T) -> Self { - Self::from_arc(Arc::new(inner)) - } - pub fn from_arc(inner: Arc) -> Self { - Self { - inner, - accept_compression_encodings: Default::default(), - send_compression_encodings: Default::default(), - max_decoding_message_size: None, - max_encoding_message_size: None, - } - } - pub fn with_interceptor( - inner: T, - interceptor: F, - ) -> InterceptedService - where - F: tonic::service::Interceptor, - { - InterceptedService::new(Self::new(inner), interceptor) - } - /// Enable decompressing requests with the given encoding. - #[must_use] - pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.accept_compression_encodings.enable(encoding); - self - } - /// Compress responses with the given encoding, if the client supports it. - #[must_use] - pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.send_compression_encodings.enable(encoding); - self - } - /// Limits the maximum size of a decoded message. - /// - /// Default: `4MB` - #[must_use] - pub fn max_decoding_message_size(mut self, limit: usize) -> Self { - self.max_decoding_message_size = Some(limit); - self - } - /// Limits the maximum size of an encoded message. - /// - /// Default: `usize::MAX` - #[must_use] - pub fn max_encoding_message_size(mut self, limit: usize) -> Self { - self.max_encoding_message_size = Some(limit); - self - } - } - impl tonic::codegen::Service> for SearcherServer - where - T: Searcher, - B: Body + std::marker::Send + 'static, - B::Error: Into + std::marker::Send + 'static, - { - type Response = http::Response; - type Error = std::convert::Infallible; - type Future = BoxFuture; - fn poll_ready( - &mut self, - _cx: &mut Context<'_>, - ) -> Poll> { - Poll::Ready(Ok(())) - } - fn call(&mut self, req: http::Request) -> Self::Future { - match req.uri().path() { - "/komp_ac.search.Searcher/SearchTable" => { - #[allow(non_camel_case_types)] - struct SearchTableSvc(pub Arc); - impl tonic::server::UnaryService - for SearchTableSvc { - type Response = super::SearchResponse; - type Future = BoxFuture< - tonic::Response, - tonic::Status, - >; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::search_table(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = SearchTableSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - _ => { - Box::pin(async move { - let mut response = http::Response::new( - tonic::body::Body::default(), - ); - let headers = response.headers_mut(); - headers - .insert( - tonic::Status::GRPC_STATUS, - (tonic::Code::Unimplemented as i32).into(), - ); - headers - .insert( - http::header::CONTENT_TYPE, - tonic::metadata::GRPC_CONTENT_TYPE, - ); - Ok(response) - }) - } - } - } - } - impl Clone for SearcherServer { - fn clone(&self) -> Self { - let inner = self.inner.clone(); - Self { - inner, - accept_compression_encodings: self.accept_compression_encodings, - send_compression_encodings: self.send_compression_encodings, - max_decoding_message_size: self.max_decoding_message_size, - max_encoding_message_size: self.max_encoding_message_size, - } - } - } - /// Generated gRPC service name - pub const SERVICE_NAME: &str = "komp_ac.search.Searcher"; - impl tonic::server::NamedService for SearcherServer { - const NAME: &'static str = SERVICE_NAME; - } -} diff --git a/common/src/proto/multieko2.table_definition.rs b/common/src/proto/multieko2.table_definition.rs deleted file mode 100644 index 8038507..0000000 --- a/common/src/proto/multieko2.table_definition.rs +++ /dev/null @@ -1,544 +0,0 @@ -// This file is @generated by prost-build. -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct TableLink { - #[prost(string, tag = "1")] - pub linked_table_name: ::prost::alloc::string::String, - #[prost(bool, tag = "2")] - pub required: bool, -} -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct PostTableDefinitionRequest { - #[prost(string, tag = "1")] - pub table_name: ::prost::alloc::string::String, - #[prost(message, repeated, tag = "2")] - pub links: ::prost::alloc::vec::Vec, - #[prost(message, repeated, tag = "3")] - pub columns: ::prost::alloc::vec::Vec, - #[prost(string, repeated, tag = "4")] - pub indexes: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, - #[prost(string, tag = "5")] - pub profile_name: ::prost::alloc::string::String, -} -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct ColumnDefinition { - #[prost(string, tag = "1")] - pub name: ::prost::alloc::string::String, - #[prost(string, tag = "2")] - pub field_type: ::prost::alloc::string::String, -} -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct TableDefinitionResponse { - #[prost(bool, tag = "1")] - pub success: bool, - #[prost(string, tag = "2")] - pub sql: ::prost::alloc::string::String, -} -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct ProfileTreeResponse { - #[prost(message, repeated, tag = "1")] - pub profiles: ::prost::alloc::vec::Vec, -} -/// Nested message and enum types in `ProfileTreeResponse`. -pub mod profile_tree_response { - #[derive(Clone, PartialEq, ::prost::Message)] - pub struct Table { - #[prost(int64, tag = "1")] - pub id: i64, - #[prost(string, tag = "2")] - pub name: ::prost::alloc::string::String, - #[prost(string, repeated, tag = "3")] - pub depends_on: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, - } - #[derive(Clone, PartialEq, ::prost::Message)] - pub struct Profile { - #[prost(string, tag = "1")] - pub name: ::prost::alloc::string::String, - #[prost(message, repeated, tag = "2")] - pub tables: ::prost::alloc::vec::Vec, - } -} -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct DeleteTableRequest { - #[prost(string, tag = "1")] - pub profile_name: ::prost::alloc::string::String, - #[prost(string, tag = "2")] - pub table_name: ::prost::alloc::string::String, -} -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct DeleteTableResponse { - #[prost(bool, tag = "1")] - pub success: bool, - #[prost(string, tag = "2")] - pub message: ::prost::alloc::string::String, -} -/// Generated client implementations. -pub mod table_definition_client { - #![allow( - unused_variables, - dead_code, - missing_docs, - clippy::wildcard_imports, - clippy::let_unit_value, - )] - use tonic::codegen::*; - use tonic::codegen::http::Uri; - #[derive(Debug, Clone)] - pub struct TableDefinitionClient { - inner: tonic::client::Grpc, - } - impl TableDefinitionClient { - /// Attempt to create a new client by connecting to a given endpoint. - pub async fn connect(dst: D) -> Result - where - D: TryInto, - D::Error: Into, - { - let conn = tonic::transport::Endpoint::new(dst)?.connect().await?; - Ok(Self::new(conn)) - } - } - impl TableDefinitionClient - where - T: tonic::client::GrpcService, - T::Error: Into, - T::ResponseBody: Body + std::marker::Send + 'static, - ::Error: Into + std::marker::Send, - { - pub fn new(inner: T) -> Self { - let inner = tonic::client::Grpc::new(inner); - Self { inner } - } - pub fn with_origin(inner: T, origin: Uri) -> Self { - let inner = tonic::client::Grpc::with_origin(inner, origin); - Self { inner } - } - pub fn with_interceptor( - inner: T, - interceptor: F, - ) -> TableDefinitionClient> - where - F: tonic::service::Interceptor, - T::ResponseBody: Default, - T: tonic::codegen::Service< - http::Request, - Response = http::Response< - >::ResponseBody, - >, - >, - , - >>::Error: Into + std::marker::Send + std::marker::Sync, - { - TableDefinitionClient::new(InterceptedService::new(inner, interceptor)) - } - /// Compress requests with the given encoding. - /// - /// This requires the server to support it otherwise it might respond with an - /// error. - #[must_use] - pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.inner = self.inner.send_compressed(encoding); - self - } - /// Enable decompressing responses. - #[must_use] - pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.inner = self.inner.accept_compressed(encoding); - self - } - /// Limits the maximum size of a decoded message. - /// - /// Default: `4MB` - #[must_use] - pub fn max_decoding_message_size(mut self, limit: usize) -> Self { - self.inner = self.inner.max_decoding_message_size(limit); - self - } - /// Limits the maximum size of an encoded message. - /// - /// Default: `usize::MAX` - #[must_use] - pub fn max_encoding_message_size(mut self, limit: usize) -> Self { - self.inner = self.inner.max_encoding_message_size(limit); - self - } - pub async fn post_table_definition( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::unknown( - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/komp_ac.table_definition.TableDefinition/PostTableDefinition", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert( - GrpcMethod::new( - "komp_ac.table_definition.TableDefinition", - "PostTableDefinition", - ), - ); - self.inner.unary(req, path, codec).await - } - pub async fn get_profile_tree( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::unknown( - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/komp_ac.table_definition.TableDefinition/GetProfileTree", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert( - GrpcMethod::new( - "komp_ac.table_definition.TableDefinition", - "GetProfileTree", - ), - ); - self.inner.unary(req, path, codec).await - } - pub async fn delete_table( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::unknown( - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/komp_ac.table_definition.TableDefinition/DeleteTable", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert( - GrpcMethod::new( - "komp_ac.table_definition.TableDefinition", - "DeleteTable", - ), - ); - self.inner.unary(req, path, codec).await - } - } -} -/// Generated server implementations. -pub mod table_definition_server { - #![allow( - unused_variables, - dead_code, - missing_docs, - clippy::wildcard_imports, - clippy::let_unit_value, - )] - use tonic::codegen::*; - /// Generated trait containing gRPC methods that should be implemented for use with TableDefinitionServer. - #[async_trait] - pub trait TableDefinition: std::marker::Send + std::marker::Sync + 'static { - async fn post_table_definition( - &self, - request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; - async fn get_profile_tree( - &self, - request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; - async fn delete_table( - &self, - request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; - } - #[derive(Debug)] - pub struct TableDefinitionServer { - inner: Arc, - accept_compression_encodings: EnabledCompressionEncodings, - send_compression_encodings: EnabledCompressionEncodings, - max_decoding_message_size: Option, - max_encoding_message_size: Option, - } - impl TableDefinitionServer { - pub fn new(inner: T) -> Self { - Self::from_arc(Arc::new(inner)) - } - pub fn from_arc(inner: Arc) -> Self { - Self { - inner, - accept_compression_encodings: Default::default(), - send_compression_encodings: Default::default(), - max_decoding_message_size: None, - max_encoding_message_size: None, - } - } - pub fn with_interceptor( - inner: T, - interceptor: F, - ) -> InterceptedService - where - F: tonic::service::Interceptor, - { - InterceptedService::new(Self::new(inner), interceptor) - } - /// Enable decompressing requests with the given encoding. - #[must_use] - pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.accept_compression_encodings.enable(encoding); - self - } - /// Compress responses with the given encoding, if the client supports it. - #[must_use] - pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.send_compression_encodings.enable(encoding); - self - } - /// Limits the maximum size of a decoded message. - /// - /// Default: `4MB` - #[must_use] - pub fn max_decoding_message_size(mut self, limit: usize) -> Self { - self.max_decoding_message_size = Some(limit); - self - } - /// Limits the maximum size of an encoded message. - /// - /// Default: `usize::MAX` - #[must_use] - pub fn max_encoding_message_size(mut self, limit: usize) -> Self { - self.max_encoding_message_size = Some(limit); - self - } - } - impl tonic::codegen::Service> for TableDefinitionServer - where - T: TableDefinition, - B: Body + std::marker::Send + 'static, - B::Error: Into + std::marker::Send + 'static, - { - type Response = http::Response; - type Error = std::convert::Infallible; - type Future = BoxFuture; - fn poll_ready( - &mut self, - _cx: &mut Context<'_>, - ) -> Poll> { - Poll::Ready(Ok(())) - } - fn call(&mut self, req: http::Request) -> Self::Future { - match req.uri().path() { - "/komp_ac.table_definition.TableDefinition/PostTableDefinition" => { - #[allow(non_camel_case_types)] - struct PostTableDefinitionSvc(pub Arc); - impl< - T: TableDefinition, - > tonic::server::UnaryService - for PostTableDefinitionSvc { - type Response = super::TableDefinitionResponse; - type Future = BoxFuture< - tonic::Response, - tonic::Status, - >; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::post_table_definition( - &inner, - request, - ) - .await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = PostTableDefinitionSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/komp_ac.table_definition.TableDefinition/GetProfileTree" => { - #[allow(non_camel_case_types)] - struct GetProfileTreeSvc(pub Arc); - impl< - T: TableDefinition, - > tonic::server::UnaryService - for GetProfileTreeSvc { - type Response = super::ProfileTreeResponse; - type Future = BoxFuture< - tonic::Response, - tonic::Status, - >; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::get_profile_tree(&inner, request) - .await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = GetProfileTreeSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/komp_ac.table_definition.TableDefinition/DeleteTable" => { - #[allow(non_camel_case_types)] - struct DeleteTableSvc(pub Arc); - impl< - T: TableDefinition, - > tonic::server::UnaryService - for DeleteTableSvc { - type Response = super::DeleteTableResponse; - type Future = BoxFuture< - tonic::Response, - tonic::Status, - >; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::delete_table(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = DeleteTableSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - _ => { - Box::pin(async move { - let mut response = http::Response::new( - tonic::body::Body::default(), - ); - let headers = response.headers_mut(); - headers - .insert( - tonic::Status::GRPC_STATUS, - (tonic::Code::Unimplemented as i32).into(), - ); - headers - .insert( - http::header::CONTENT_TYPE, - tonic::metadata::GRPC_CONTENT_TYPE, - ); - Ok(response) - }) - } - } - } - } - impl Clone for TableDefinitionServer { - fn clone(&self) -> Self { - let inner = self.inner.clone(); - Self { - inner, - accept_compression_encodings: self.accept_compression_encodings, - send_compression_encodings: self.send_compression_encodings, - max_decoding_message_size: self.max_decoding_message_size, - max_encoding_message_size: self.max_encoding_message_size, - } - } - } - /// Generated gRPC service name - pub const SERVICE_NAME: &str = "komp_ac.table_definition.TableDefinition"; - impl tonic::server::NamedService for TableDefinitionServer { - const NAME: &'static str = SERVICE_NAME; - } -} diff --git a/common/src/proto/multieko2.table_script.rs b/common/src/proto/multieko2.table_script.rs deleted file mode 100644 index e832650..0000000 --- a/common/src/proto/multieko2.table_script.rs +++ /dev/null @@ -1,323 +0,0 @@ -// This file is @generated by prost-build. -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct PostTableScriptRequest { - #[prost(int64, tag = "1")] - pub table_definition_id: i64, - #[prost(string, tag = "2")] - pub target_column: ::prost::alloc::string::String, - #[prost(string, tag = "3")] - pub script: ::prost::alloc::string::String, - #[prost(string, tag = "4")] - pub description: ::prost::alloc::string::String, -} -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct TableScriptResponse { - #[prost(int64, tag = "1")] - pub id: i64, - #[prost(string, tag = "2")] - pub warnings: ::prost::alloc::string::String, -} -/// Generated client implementations. -pub mod table_script_client { - #![allow( - unused_variables, - dead_code, - missing_docs, - clippy::wildcard_imports, - clippy::let_unit_value, - )] - use tonic::codegen::*; - use tonic::codegen::http::Uri; - #[derive(Debug, Clone)] - pub struct TableScriptClient { - inner: tonic::client::Grpc, - } - impl TableScriptClient { - /// Attempt to create a new client by connecting to a given endpoint. - pub async fn connect(dst: D) -> Result - where - D: TryInto, - D::Error: Into, - { - let conn = tonic::transport::Endpoint::new(dst)?.connect().await?; - Ok(Self::new(conn)) - } - } - impl TableScriptClient - where - T: tonic::client::GrpcService, - T::Error: Into, - T::ResponseBody: Body + std::marker::Send + 'static, - ::Error: Into + std::marker::Send, - { - pub fn new(inner: T) -> Self { - let inner = tonic::client::Grpc::new(inner); - Self { inner } - } - pub fn with_origin(inner: T, origin: Uri) -> Self { - let inner = tonic::client::Grpc::with_origin(inner, origin); - Self { inner } - } - pub fn with_interceptor( - inner: T, - interceptor: F, - ) -> TableScriptClient> - where - F: tonic::service::Interceptor, - T::ResponseBody: Default, - T: tonic::codegen::Service< - http::Request, - Response = http::Response< - >::ResponseBody, - >, - >, - , - >>::Error: Into + std::marker::Send + std::marker::Sync, - { - TableScriptClient::new(InterceptedService::new(inner, interceptor)) - } - /// Compress requests with the given encoding. - /// - /// This requires the server to support it otherwise it might respond with an - /// error. - #[must_use] - pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.inner = self.inner.send_compressed(encoding); - self - } - /// Enable decompressing responses. - #[must_use] - pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.inner = self.inner.accept_compressed(encoding); - self - } - /// Limits the maximum size of a decoded message. - /// - /// Default: `4MB` - #[must_use] - pub fn max_decoding_message_size(mut self, limit: usize) -> Self { - self.inner = self.inner.max_decoding_message_size(limit); - self - } - /// Limits the maximum size of an encoded message. - /// - /// Default: `usize::MAX` - #[must_use] - pub fn max_encoding_message_size(mut self, limit: usize) -> Self { - self.inner = self.inner.max_encoding_message_size(limit); - self - } - pub async fn post_table_script( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::unknown( - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/komp_ac.table_script.TableScript/PostTableScript", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert( - GrpcMethod::new( - "komp_ac.table_script.TableScript", - "PostTableScript", - ), - ); - self.inner.unary(req, path, codec).await - } - } -} -/// Generated server implementations. -pub mod table_script_server { - #![allow( - unused_variables, - dead_code, - missing_docs, - clippy::wildcard_imports, - clippy::let_unit_value, - )] - use tonic::codegen::*; - /// Generated trait containing gRPC methods that should be implemented for use with TableScriptServer. - #[async_trait] - pub trait TableScript: std::marker::Send + std::marker::Sync + 'static { - async fn post_table_script( - &self, - request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; - } - #[derive(Debug)] - pub struct TableScriptServer { - inner: Arc, - accept_compression_encodings: EnabledCompressionEncodings, - send_compression_encodings: EnabledCompressionEncodings, - max_decoding_message_size: Option, - max_encoding_message_size: Option, - } - impl TableScriptServer { - pub fn new(inner: T) -> Self { - Self::from_arc(Arc::new(inner)) - } - pub fn from_arc(inner: Arc) -> Self { - Self { - inner, - accept_compression_encodings: Default::default(), - send_compression_encodings: Default::default(), - max_decoding_message_size: None, - max_encoding_message_size: None, - } - } - pub fn with_interceptor( - inner: T, - interceptor: F, - ) -> InterceptedService - where - F: tonic::service::Interceptor, - { - InterceptedService::new(Self::new(inner), interceptor) - } - /// Enable decompressing requests with the given encoding. - #[must_use] - pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.accept_compression_encodings.enable(encoding); - self - } - /// Compress responses with the given encoding, if the client supports it. - #[must_use] - pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.send_compression_encodings.enable(encoding); - self - } - /// Limits the maximum size of a decoded message. - /// - /// Default: `4MB` - #[must_use] - pub fn max_decoding_message_size(mut self, limit: usize) -> Self { - self.max_decoding_message_size = Some(limit); - self - } - /// Limits the maximum size of an encoded message. - /// - /// Default: `usize::MAX` - #[must_use] - pub fn max_encoding_message_size(mut self, limit: usize) -> Self { - self.max_encoding_message_size = Some(limit); - self - } - } - impl tonic::codegen::Service> for TableScriptServer - where - T: TableScript, - B: Body + std::marker::Send + 'static, - B::Error: Into + std::marker::Send + 'static, - { - type Response = http::Response; - type Error = std::convert::Infallible; - type Future = BoxFuture; - fn poll_ready( - &mut self, - _cx: &mut Context<'_>, - ) -> Poll> { - Poll::Ready(Ok(())) - } - fn call(&mut self, req: http::Request) -> Self::Future { - match req.uri().path() { - "/komp_ac.table_script.TableScript/PostTableScript" => { - #[allow(non_camel_case_types)] - struct PostTableScriptSvc(pub Arc); - impl< - T: TableScript, - > tonic::server::UnaryService - for PostTableScriptSvc { - type Response = super::TableScriptResponse; - type Future = BoxFuture< - tonic::Response, - tonic::Status, - >; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::post_table_script(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = PostTableScriptSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - _ => { - Box::pin(async move { - let mut response = http::Response::new( - tonic::body::Body::default(), - ); - let headers = response.headers_mut(); - headers - .insert( - tonic::Status::GRPC_STATUS, - (tonic::Code::Unimplemented as i32).into(), - ); - headers - .insert( - http::header::CONTENT_TYPE, - tonic::metadata::GRPC_CONTENT_TYPE, - ); - Ok(response) - }) - } - } - } - } - impl Clone for TableScriptServer { - fn clone(&self) -> Self { - let inner = self.inner.clone(); - Self { - inner, - accept_compression_encodings: self.accept_compression_encodings, - send_compression_encodings: self.send_compression_encodings, - max_decoding_message_size: self.max_decoding_message_size, - max_encoding_message_size: self.max_encoding_message_size, - } - } - } - /// Generated gRPC service name - pub const SERVICE_NAME: &str = "komp_ac.table_script.TableScript"; - impl tonic::server::NamedService for TableScriptServer { - const NAME: &'static str = SERVICE_NAME; - } -} diff --git a/common/src/proto/multieko2.table_structure.rs b/common/src/proto/multieko2.table_structure.rs deleted file mode 100644 index ea2f418..0000000 --- a/common/src/proto/multieko2.table_structure.rs +++ /dev/null @@ -1,336 +0,0 @@ -// This file is @generated by prost-build. -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct GetTableStructureRequest { - /// e.g., "default" - #[prost(string, tag = "1")] - pub profile_name: ::prost::alloc::string::String, - /// e.g., "2025_adresar6" - #[prost(string, tag = "2")] - pub table_name: ::prost::alloc::string::String, -} -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct TableStructureResponse { - #[prost(message, repeated, tag = "1")] - pub columns: ::prost::alloc::vec::Vec, -} -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct TableColumn { - #[prost(string, tag = "1")] - pub name: ::prost::alloc::string::String, - /// e.g., "TEXT", "BIGINT", "VARCHAR(255)", "TIMESTAMPTZ" - #[prost(string, tag = "2")] - pub data_type: ::prost::alloc::string::String, - #[prost(bool, tag = "3")] - pub is_nullable: bool, - #[prost(bool, tag = "4")] - pub is_primary_key: bool, -} -/// Generated client implementations. -pub mod table_structure_service_client { - #![allow( - unused_variables, - dead_code, - missing_docs, - clippy::wildcard_imports, - clippy::let_unit_value, - )] - use tonic::codegen::*; - use tonic::codegen::http::Uri; - #[derive(Debug, Clone)] - pub struct TableStructureServiceClient { - inner: tonic::client::Grpc, - } - impl TableStructureServiceClient { - /// Attempt to create a new client by connecting to a given endpoint. - pub async fn connect(dst: D) -> Result - where - D: TryInto, - D::Error: Into, - { - let conn = tonic::transport::Endpoint::new(dst)?.connect().await?; - Ok(Self::new(conn)) - } - } - impl TableStructureServiceClient - where - T: tonic::client::GrpcService, - T::Error: Into, - T::ResponseBody: Body + std::marker::Send + 'static, - ::Error: Into + std::marker::Send, - { - pub fn new(inner: T) -> Self { - let inner = tonic::client::Grpc::new(inner); - Self { inner } - } - pub fn with_origin(inner: T, origin: Uri) -> Self { - let inner = tonic::client::Grpc::with_origin(inner, origin); - Self { inner } - } - pub fn with_interceptor( - inner: T, - interceptor: F, - ) -> TableStructureServiceClient> - where - F: tonic::service::Interceptor, - T::ResponseBody: Default, - T: tonic::codegen::Service< - http::Request, - Response = http::Response< - >::ResponseBody, - >, - >, - , - >>::Error: Into + std::marker::Send + std::marker::Sync, - { - TableStructureServiceClient::new(InterceptedService::new(inner, interceptor)) - } - /// Compress requests with the given encoding. - /// - /// This requires the server to support it otherwise it might respond with an - /// error. - #[must_use] - pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.inner = self.inner.send_compressed(encoding); - self - } - /// Enable decompressing responses. - #[must_use] - pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.inner = self.inner.accept_compressed(encoding); - self - } - /// Limits the maximum size of a decoded message. - /// - /// Default: `4MB` - #[must_use] - pub fn max_decoding_message_size(mut self, limit: usize) -> Self { - self.inner = self.inner.max_decoding_message_size(limit); - self - } - /// Limits the maximum size of an encoded message. - /// - /// Default: `usize::MAX` - #[must_use] - pub fn max_encoding_message_size(mut self, limit: usize) -> Self { - self.inner = self.inner.max_encoding_message_size(limit); - self - } - pub async fn get_table_structure( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::unknown( - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/komp_ac.table_structure.TableStructureService/GetTableStructure", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert( - GrpcMethod::new( - "komp_ac.table_structure.TableStructureService", - "GetTableStructure", - ), - ); - self.inner.unary(req, path, codec).await - } - } -} -/// Generated server implementations. -pub mod table_structure_service_server { - #![allow( - unused_variables, - dead_code, - missing_docs, - clippy::wildcard_imports, - clippy::let_unit_value, - )] - use tonic::codegen::*; - /// Generated trait containing gRPC methods that should be implemented for use with TableStructureServiceServer. - #[async_trait] - pub trait TableStructureService: std::marker::Send + std::marker::Sync + 'static { - async fn get_table_structure( - &self, - request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; - } - #[derive(Debug)] - pub struct TableStructureServiceServer { - inner: Arc, - accept_compression_encodings: EnabledCompressionEncodings, - send_compression_encodings: EnabledCompressionEncodings, - max_decoding_message_size: Option, - max_encoding_message_size: Option, - } - impl TableStructureServiceServer { - pub fn new(inner: T) -> Self { - Self::from_arc(Arc::new(inner)) - } - pub fn from_arc(inner: Arc) -> Self { - Self { - inner, - accept_compression_encodings: Default::default(), - send_compression_encodings: Default::default(), - max_decoding_message_size: None, - max_encoding_message_size: None, - } - } - pub fn with_interceptor( - inner: T, - interceptor: F, - ) -> InterceptedService - where - F: tonic::service::Interceptor, - { - InterceptedService::new(Self::new(inner), interceptor) - } - /// Enable decompressing requests with the given encoding. - #[must_use] - pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.accept_compression_encodings.enable(encoding); - self - } - /// Compress responses with the given encoding, if the client supports it. - #[must_use] - pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.send_compression_encodings.enable(encoding); - self - } - /// Limits the maximum size of a decoded message. - /// - /// Default: `4MB` - #[must_use] - pub fn max_decoding_message_size(mut self, limit: usize) -> Self { - self.max_decoding_message_size = Some(limit); - self - } - /// Limits the maximum size of an encoded message. - /// - /// Default: `usize::MAX` - #[must_use] - pub fn max_encoding_message_size(mut self, limit: usize) -> Self { - self.max_encoding_message_size = Some(limit); - self - } - } - impl tonic::codegen::Service> - for TableStructureServiceServer - where - T: TableStructureService, - B: Body + std::marker::Send + 'static, - B::Error: Into + std::marker::Send + 'static, - { - type Response = http::Response; - type Error = std::convert::Infallible; - type Future = BoxFuture; - fn poll_ready( - &mut self, - _cx: &mut Context<'_>, - ) -> Poll> { - Poll::Ready(Ok(())) - } - fn call(&mut self, req: http::Request) -> Self::Future { - match req.uri().path() { - "/komp_ac.table_structure.TableStructureService/GetTableStructure" => { - #[allow(non_camel_case_types)] - struct GetTableStructureSvc(pub Arc); - impl< - T: TableStructureService, - > tonic::server::UnaryService - for GetTableStructureSvc { - type Response = super::TableStructureResponse; - type Future = BoxFuture< - tonic::Response, - tonic::Status, - >; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::get_table_structure( - &inner, - request, - ) - .await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = GetTableStructureSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - _ => { - Box::pin(async move { - let mut response = http::Response::new( - tonic::body::Body::default(), - ); - let headers = response.headers_mut(); - headers - .insert( - tonic::Status::GRPC_STATUS, - (tonic::Code::Unimplemented as i32).into(), - ); - headers - .insert( - http::header::CONTENT_TYPE, - tonic::metadata::GRPC_CONTENT_TYPE, - ); - Ok(response) - }) - } - } - } - } - impl Clone for TableStructureServiceServer { - fn clone(&self) -> Self { - let inner = self.inner.clone(); - Self { - inner, - accept_compression_encodings: self.accept_compression_encodings, - send_compression_encodings: self.send_compression_encodings, - max_decoding_message_size: self.max_decoding_message_size, - max_encoding_message_size: self.max_encoding_message_size, - } - } - } - /// Generated gRPC service name - pub const SERVICE_NAME: &str = "komp_ac.table_structure.TableStructureService"; - impl tonic::server::NamedService for TableStructureServiceServer { - const NAME: &'static str = SERVICE_NAME; - } -} diff --git a/common/src/proto/multieko2.tables_data.rs b/common/src/proto/multieko2.tables_data.rs deleted file mode 100644 index f095942..0000000 --- a/common/src/proto/multieko2.tables_data.rs +++ /dev/null @@ -1,797 +0,0 @@ -// This file is @generated by prost-build. -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct PostTableDataRequest { - #[prost(string, tag = "1")] - pub profile_name: ::prost::alloc::string::String, - #[prost(string, tag = "2")] - pub table_name: ::prost::alloc::string::String, - #[prost(map = "string, message", tag = "3")] - pub data: ::std::collections::HashMap< - ::prost::alloc::string::String, - ::prost_types::Value, - >, -} -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct PostTableDataResponse { - #[prost(bool, tag = "1")] - pub success: bool, - #[prost(string, tag = "2")] - pub message: ::prost::alloc::string::String, - #[prost(int64, tag = "3")] - pub inserted_id: i64, -} -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct PutTableDataRequest { - #[prost(string, tag = "1")] - pub profile_name: ::prost::alloc::string::String, - #[prost(string, tag = "2")] - pub table_name: ::prost::alloc::string::String, - #[prost(int64, tag = "3")] - pub id: i64, - #[prost(map = "string, message", tag = "4")] - pub data: ::std::collections::HashMap< - ::prost::alloc::string::String, - ::prost_types::Value, - >, -} -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct PutTableDataResponse { - #[prost(bool, tag = "1")] - pub success: bool, - #[prost(string, tag = "2")] - pub message: ::prost::alloc::string::String, - #[prost(int64, tag = "3")] - pub updated_id: i64, -} -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct DeleteTableDataRequest { - #[prost(string, tag = "1")] - pub profile_name: ::prost::alloc::string::String, - #[prost(string, tag = "2")] - pub table_name: ::prost::alloc::string::String, - #[prost(int64, tag = "3")] - pub record_id: i64, -} -#[derive(Clone, Copy, PartialEq, ::prost::Message)] -pub struct DeleteTableDataResponse { - #[prost(bool, tag = "1")] - pub success: bool, -} -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct GetTableDataRequest { - #[prost(string, tag = "1")] - pub profile_name: ::prost::alloc::string::String, - #[prost(string, tag = "2")] - pub table_name: ::prost::alloc::string::String, - #[prost(int64, tag = "3")] - pub id: i64, -} -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct GetTableDataResponse { - #[prost(map = "string, string", tag = "1")] - pub data: ::std::collections::HashMap< - ::prost::alloc::string::String, - ::prost::alloc::string::String, - >, -} -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct GetTableDataCountRequest { - #[prost(string, tag = "1")] - pub profile_name: ::prost::alloc::string::String, - #[prost(string, tag = "2")] - pub table_name: ::prost::alloc::string::String, -} -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct GetTableDataByPositionRequest { - #[prost(string, tag = "1")] - pub profile_name: ::prost::alloc::string::String, - #[prost(string, tag = "2")] - pub table_name: ::prost::alloc::string::String, - #[prost(int32, tag = "3")] - pub position: i32, -} -/// Generated client implementations. -pub mod tables_data_client { - #![allow( - unused_variables, - dead_code, - missing_docs, - clippy::wildcard_imports, - clippy::let_unit_value, - )] - use tonic::codegen::*; - use tonic::codegen::http::Uri; - #[derive(Debug, Clone)] - pub struct TablesDataClient { - inner: tonic::client::Grpc, - } - impl TablesDataClient { - /// Attempt to create a new client by connecting to a given endpoint. - pub async fn connect(dst: D) -> Result - where - D: TryInto, - D::Error: Into, - { - let conn = tonic::transport::Endpoint::new(dst)?.connect().await?; - Ok(Self::new(conn)) - } - } - impl TablesDataClient - where - T: tonic::client::GrpcService, - T::Error: Into, - T::ResponseBody: Body + std::marker::Send + 'static, - ::Error: Into + std::marker::Send, - { - pub fn new(inner: T) -> Self { - let inner = tonic::client::Grpc::new(inner); - Self { inner } - } - pub fn with_origin(inner: T, origin: Uri) -> Self { - let inner = tonic::client::Grpc::with_origin(inner, origin); - Self { inner } - } - pub fn with_interceptor( - inner: T, - interceptor: F, - ) -> TablesDataClient> - where - F: tonic::service::Interceptor, - T::ResponseBody: Default, - T: tonic::codegen::Service< - http::Request, - Response = http::Response< - >::ResponseBody, - >, - >, - , - >>::Error: Into + std::marker::Send + std::marker::Sync, - { - TablesDataClient::new(InterceptedService::new(inner, interceptor)) - } - /// Compress requests with the given encoding. - /// - /// This requires the server to support it otherwise it might respond with an - /// error. - #[must_use] - pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.inner = self.inner.send_compressed(encoding); - self - } - /// Enable decompressing responses. - #[must_use] - pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.inner = self.inner.accept_compressed(encoding); - self - } - /// Limits the maximum size of a decoded message. - /// - /// Default: `4MB` - #[must_use] - pub fn max_decoding_message_size(mut self, limit: usize) -> Self { - self.inner = self.inner.max_decoding_message_size(limit); - self - } - /// Limits the maximum size of an encoded message. - /// - /// Default: `usize::MAX` - #[must_use] - pub fn max_encoding_message_size(mut self, limit: usize) -> Self { - self.inner = self.inner.max_encoding_message_size(limit); - self - } - pub async fn post_table_data( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::unknown( - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/komp_ac.tables_data.TablesData/PostTableData", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert( - GrpcMethod::new("komp_ac.tables_data.TablesData", "PostTableData"), - ); - self.inner.unary(req, path, codec).await - } - pub async fn put_table_data( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::unknown( - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/komp_ac.tables_data.TablesData/PutTableData", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert( - GrpcMethod::new("komp_ac.tables_data.TablesData", "PutTableData"), - ); - self.inner.unary(req, path, codec).await - } - pub async fn delete_table_data( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::unknown( - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/komp_ac.tables_data.TablesData/DeleteTableData", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert( - GrpcMethod::new( - "komp_ac.tables_data.TablesData", - "DeleteTableData", - ), - ); - self.inner.unary(req, path, codec).await - } - pub async fn get_table_data( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::unknown( - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/komp_ac.tables_data.TablesData/GetTableData", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert( - GrpcMethod::new("komp_ac.tables_data.TablesData", "GetTableData"), - ); - self.inner.unary(req, path, codec).await - } - pub async fn get_table_data_count( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::unknown( - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/komp_ac.tables_data.TablesData/GetTableDataCount", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert( - GrpcMethod::new( - "komp_ac.tables_data.TablesData", - "GetTableDataCount", - ), - ); - self.inner.unary(req, path, codec).await - } - pub async fn get_table_data_by_position( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::unknown( - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/komp_ac.tables_data.TablesData/GetTableDataByPosition", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert( - GrpcMethod::new( - "komp_ac.tables_data.TablesData", - "GetTableDataByPosition", - ), - ); - self.inner.unary(req, path, codec).await - } - } -} -/// Generated server implementations. -pub mod tables_data_server { - #![allow( - unused_variables, - dead_code, - missing_docs, - clippy::wildcard_imports, - clippy::let_unit_value, - )] - use tonic::codegen::*; - /// Generated trait containing gRPC methods that should be implemented for use with TablesDataServer. - #[async_trait] - pub trait TablesData: std::marker::Send + std::marker::Sync + 'static { - async fn post_table_data( - &self, - request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; - async fn put_table_data( - &self, - request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; - async fn delete_table_data( - &self, - request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; - async fn get_table_data( - &self, - request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; - async fn get_table_data_count( - &self, - request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; - async fn get_table_data_by_position( - &self, - request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; - } - #[derive(Debug)] - pub struct TablesDataServer { - inner: Arc, - accept_compression_encodings: EnabledCompressionEncodings, - send_compression_encodings: EnabledCompressionEncodings, - max_decoding_message_size: Option, - max_encoding_message_size: Option, - } - impl TablesDataServer { - pub fn new(inner: T) -> Self { - Self::from_arc(Arc::new(inner)) - } - pub fn from_arc(inner: Arc) -> Self { - Self { - inner, - accept_compression_encodings: Default::default(), - send_compression_encodings: Default::default(), - max_decoding_message_size: None, - max_encoding_message_size: None, - } - } - pub fn with_interceptor( - inner: T, - interceptor: F, - ) -> InterceptedService - where - F: tonic::service::Interceptor, - { - InterceptedService::new(Self::new(inner), interceptor) - } - /// Enable decompressing requests with the given encoding. - #[must_use] - pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.accept_compression_encodings.enable(encoding); - self - } - /// Compress responses with the given encoding, if the client supports it. - #[must_use] - pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.send_compression_encodings.enable(encoding); - self - } - /// Limits the maximum size of a decoded message. - /// - /// Default: `4MB` - #[must_use] - pub fn max_decoding_message_size(mut self, limit: usize) -> Self { - self.max_decoding_message_size = Some(limit); - self - } - /// Limits the maximum size of an encoded message. - /// - /// Default: `usize::MAX` - #[must_use] - pub fn max_encoding_message_size(mut self, limit: usize) -> Self { - self.max_encoding_message_size = Some(limit); - self - } - } - impl tonic::codegen::Service> for TablesDataServer - where - T: TablesData, - B: Body + std::marker::Send + 'static, - B::Error: Into + std::marker::Send + 'static, - { - type Response = http::Response; - type Error = std::convert::Infallible; - type Future = BoxFuture; - fn poll_ready( - &mut self, - _cx: &mut Context<'_>, - ) -> Poll> { - Poll::Ready(Ok(())) - } - fn call(&mut self, req: http::Request) -> Self::Future { - match req.uri().path() { - "/komp_ac.tables_data.TablesData/PostTableData" => { - #[allow(non_camel_case_types)] - struct PostTableDataSvc(pub Arc); - impl< - T: TablesData, - > tonic::server::UnaryService - for PostTableDataSvc { - type Response = super::PostTableDataResponse; - type Future = BoxFuture< - tonic::Response, - tonic::Status, - >; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::post_table_data(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = PostTableDataSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/komp_ac.tables_data.TablesData/PutTableData" => { - #[allow(non_camel_case_types)] - struct PutTableDataSvc(pub Arc); - impl< - T: TablesData, - > tonic::server::UnaryService - for PutTableDataSvc { - type Response = super::PutTableDataResponse; - type Future = BoxFuture< - tonic::Response, - tonic::Status, - >; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::put_table_data(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = PutTableDataSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/komp_ac.tables_data.TablesData/DeleteTableData" => { - #[allow(non_camel_case_types)] - struct DeleteTableDataSvc(pub Arc); - impl< - T: TablesData, - > tonic::server::UnaryService - for DeleteTableDataSvc { - type Response = super::DeleteTableDataResponse; - type Future = BoxFuture< - tonic::Response, - tonic::Status, - >; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::delete_table_data(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = DeleteTableDataSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/komp_ac.tables_data.TablesData/GetTableData" => { - #[allow(non_camel_case_types)] - struct GetTableDataSvc(pub Arc); - impl< - T: TablesData, - > tonic::server::UnaryService - for GetTableDataSvc { - type Response = super::GetTableDataResponse; - type Future = BoxFuture< - tonic::Response, - tonic::Status, - >; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::get_table_data(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = GetTableDataSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/komp_ac.tables_data.TablesData/GetTableDataCount" => { - #[allow(non_camel_case_types)] - struct GetTableDataCountSvc(pub Arc); - impl< - T: TablesData, - > tonic::server::UnaryService - for GetTableDataCountSvc { - type Response = super::super::common::CountResponse; - type Future = BoxFuture< - tonic::Response, - tonic::Status, - >; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::get_table_data_count(&inner, request) - .await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = GetTableDataCountSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/komp_ac.tables_data.TablesData/GetTableDataByPosition" => { - #[allow(non_camel_case_types)] - struct GetTableDataByPositionSvc(pub Arc); - impl< - T: TablesData, - > tonic::server::UnaryService - for GetTableDataByPositionSvc { - type Response = super::GetTableDataResponse; - type Future = BoxFuture< - tonic::Response, - tonic::Status, - >; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::get_table_data_by_position( - &inner, - request, - ) - .await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = GetTableDataByPositionSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - _ => { - Box::pin(async move { - let mut response = http::Response::new( - tonic::body::Body::default(), - ); - let headers = response.headers_mut(); - headers - .insert( - tonic::Status::GRPC_STATUS, - (tonic::Code::Unimplemented as i32).into(), - ); - headers - .insert( - http::header::CONTENT_TYPE, - tonic::metadata::GRPC_CONTENT_TYPE, - ); - Ok(response) - }) - } - } - } - } - impl Clone for TablesDataServer { - fn clone(&self) -> Self { - let inner = self.inner.clone(); - Self { - inner, - accept_compression_encodings: self.accept_compression_encodings, - send_compression_encodings: self.send_compression_encodings, - max_decoding_message_size: self.max_decoding_message_size, - max_encoding_message_size: self.max_encoding_message_size, - } - } - } - /// Generated gRPC service name - pub const SERVICE_NAME: &str = "komp_ac.tables_data.TablesData"; - impl tonic::server::NamedService for TablesDataServer { - const NAME: &'static str = SERVICE_NAME; - } -} diff --git a/common/src/proto/multieko2.uctovnictvo.rs b/common/src/proto/multieko2.uctovnictvo.rs deleted file mode 100644 index 0c67168..0000000 --- a/common/src/proto/multieko2.uctovnictvo.rs +++ /dev/null @@ -1,721 +0,0 @@ -// This file is @generated by prost-build. -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct PostUctovnictvoRequest { - #[prost(int64, tag = "1")] - pub adresar_id: i64, - #[prost(string, tag = "2")] - pub c_dokladu: ::prost::alloc::string::String, - /// Use string for simplicity, or use google.protobuf.Timestamp for better date handling - #[prost(string, tag = "3")] - pub datum: ::prost::alloc::string::String, - #[prost(string, tag = "4")] - pub c_faktury: ::prost::alloc::string::String, - #[prost(string, tag = "5")] - pub obsah: ::prost::alloc::string::String, - #[prost(string, tag = "6")] - pub stredisko: ::prost::alloc::string::String, - #[prost(string, tag = "7")] - pub c_uctu: ::prost::alloc::string::String, - #[prost(string, tag = "8")] - pub md: ::prost::alloc::string::String, - #[prost(string, tag = "9")] - pub identif: ::prost::alloc::string::String, - #[prost(string, tag = "10")] - pub poznanka: ::prost::alloc::string::String, - #[prost(string, tag = "11")] - pub firma: ::prost::alloc::string::String, -} -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct UctovnictvoResponse { - #[prost(int64, tag = "1")] - pub id: i64, - #[prost(int64, tag = "2")] - pub adresar_id: i64, - #[prost(string, tag = "3")] - pub c_dokladu: ::prost::alloc::string::String, - #[prost(string, tag = "4")] - pub datum: ::prost::alloc::string::String, - #[prost(string, tag = "5")] - pub c_faktury: ::prost::alloc::string::String, - #[prost(string, tag = "6")] - pub obsah: ::prost::alloc::string::String, - #[prost(string, tag = "7")] - pub stredisko: ::prost::alloc::string::String, - #[prost(string, tag = "8")] - pub c_uctu: ::prost::alloc::string::String, - #[prost(string, tag = "9")] - pub md: ::prost::alloc::string::String, - #[prost(string, tag = "10")] - pub identif: ::prost::alloc::string::String, - #[prost(string, tag = "11")] - pub poznanka: ::prost::alloc::string::String, - #[prost(string, tag = "12")] - pub firma: ::prost::alloc::string::String, -} -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct PutUctovnictvoRequest { - #[prost(int64, tag = "1")] - pub id: i64, - #[prost(int64, tag = "2")] - pub adresar_id: i64, - #[prost(string, tag = "3")] - pub c_dokladu: ::prost::alloc::string::String, - #[prost(string, tag = "4")] - pub datum: ::prost::alloc::string::String, - #[prost(string, tag = "5")] - pub c_faktury: ::prost::alloc::string::String, - #[prost(string, tag = "6")] - pub obsah: ::prost::alloc::string::String, - #[prost(string, tag = "7")] - pub stredisko: ::prost::alloc::string::String, - #[prost(string, tag = "8")] - pub c_uctu: ::prost::alloc::string::String, - #[prost(string, tag = "9")] - pub md: ::prost::alloc::string::String, - #[prost(string, tag = "10")] - pub identif: ::prost::alloc::string::String, - #[prost(string, tag = "11")] - pub poznanka: ::prost::alloc::string::String, - #[prost(string, tag = "12")] - pub firma: ::prost::alloc::string::String, -} -#[derive(Clone, Copy, PartialEq, ::prost::Message)] -pub struct GetUctovnictvoRequest { - #[prost(int64, tag = "1")] - pub id: i64, -} -/// Generated client implementations. -pub mod uctovnictvo_client { - #![allow( - unused_variables, - dead_code, - missing_docs, - clippy::wildcard_imports, - clippy::let_unit_value, - )] - use tonic::codegen::*; - use tonic::codegen::http::Uri; - #[derive(Debug, Clone)] - pub struct UctovnictvoClient { - inner: tonic::client::Grpc, - } - impl UctovnictvoClient { - /// Attempt to create a new client by connecting to a given endpoint. - pub async fn connect(dst: D) -> Result - where - D: TryInto, - D::Error: Into, - { - let conn = tonic::transport::Endpoint::new(dst)?.connect().await?; - Ok(Self::new(conn)) - } - } - impl UctovnictvoClient - where - T: tonic::client::GrpcService, - T::Error: Into, - T::ResponseBody: Body + std::marker::Send + 'static, - ::Error: Into + std::marker::Send, - { - pub fn new(inner: T) -> Self { - let inner = tonic::client::Grpc::new(inner); - Self { inner } - } - pub fn with_origin(inner: T, origin: Uri) -> Self { - let inner = tonic::client::Grpc::with_origin(inner, origin); - Self { inner } - } - pub fn with_interceptor( - inner: T, - interceptor: F, - ) -> UctovnictvoClient> - where - F: tonic::service::Interceptor, - T::ResponseBody: Default, - T: tonic::codegen::Service< - http::Request, - Response = http::Response< - >::ResponseBody, - >, - >, - , - >>::Error: Into + std::marker::Send + std::marker::Sync, - { - UctovnictvoClient::new(InterceptedService::new(inner, interceptor)) - } - /// Compress requests with the given encoding. - /// - /// This requires the server to support it otherwise it might respond with an - /// error. - #[must_use] - pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.inner = self.inner.send_compressed(encoding); - self - } - /// Enable decompressing responses. - #[must_use] - pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.inner = self.inner.accept_compressed(encoding); - self - } - /// Limits the maximum size of a decoded message. - /// - /// Default: `4MB` - #[must_use] - pub fn max_decoding_message_size(mut self, limit: usize) -> Self { - self.inner = self.inner.max_decoding_message_size(limit); - self - } - /// Limits the maximum size of an encoded message. - /// - /// Default: `usize::MAX` - #[must_use] - pub fn max_encoding_message_size(mut self, limit: usize) -> Self { - self.inner = self.inner.max_encoding_message_size(limit); - self - } - pub async fn post_uctovnictvo( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::unknown( - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/komp_ac.uctovnictvo.Uctovnictvo/PostUctovnictvo", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert( - GrpcMethod::new( - "komp_ac.uctovnictvo.Uctovnictvo", - "PostUctovnictvo", - ), - ); - self.inner.unary(req, path, codec).await - } - pub async fn get_uctovnictvo( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::unknown( - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/komp_ac.uctovnictvo.Uctovnictvo/GetUctovnictvo", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert( - GrpcMethod::new( - "komp_ac.uctovnictvo.Uctovnictvo", - "GetUctovnictvo", - ), - ); - self.inner.unary(req, path, codec).await - } - pub async fn get_uctovnictvo_count( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::unknown( - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/komp_ac.uctovnictvo.Uctovnictvo/GetUctovnictvoCount", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert( - GrpcMethod::new( - "komp_ac.uctovnictvo.Uctovnictvo", - "GetUctovnictvoCount", - ), - ); - self.inner.unary(req, path, codec).await - } - pub async fn get_uctovnictvo_by_position( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::unknown( - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/komp_ac.uctovnictvo.Uctovnictvo/GetUctovnictvoByPosition", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert( - GrpcMethod::new( - "komp_ac.uctovnictvo.Uctovnictvo", - "GetUctovnictvoByPosition", - ), - ); - self.inner.unary(req, path, codec).await - } - pub async fn put_uctovnictvo( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::unknown( - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/komp_ac.uctovnictvo.Uctovnictvo/PutUctovnictvo", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert( - GrpcMethod::new( - "komp_ac.uctovnictvo.Uctovnictvo", - "PutUctovnictvo", - ), - ); - self.inner.unary(req, path, codec).await - } - } -} -/// Generated server implementations. -pub mod uctovnictvo_server { - #![allow( - unused_variables, - dead_code, - missing_docs, - clippy::wildcard_imports, - clippy::let_unit_value, - )] - use tonic::codegen::*; - /// Generated trait containing gRPC methods that should be implemented for use with UctovnictvoServer. - #[async_trait] - pub trait Uctovnictvo: std::marker::Send + std::marker::Sync + 'static { - async fn post_uctovnictvo( - &self, - request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; - async fn get_uctovnictvo( - &self, - request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; - async fn get_uctovnictvo_count( - &self, - request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; - async fn get_uctovnictvo_by_position( - &self, - request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; - async fn put_uctovnictvo( - &self, - request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; - } - #[derive(Debug)] - pub struct UctovnictvoServer { - inner: Arc, - accept_compression_encodings: EnabledCompressionEncodings, - send_compression_encodings: EnabledCompressionEncodings, - max_decoding_message_size: Option, - max_encoding_message_size: Option, - } - impl UctovnictvoServer { - pub fn new(inner: T) -> Self { - Self::from_arc(Arc::new(inner)) - } - pub fn from_arc(inner: Arc) -> Self { - Self { - inner, - accept_compression_encodings: Default::default(), - send_compression_encodings: Default::default(), - max_decoding_message_size: None, - max_encoding_message_size: None, - } - } - pub fn with_interceptor( - inner: T, - interceptor: F, - ) -> InterceptedService - where - F: tonic::service::Interceptor, - { - InterceptedService::new(Self::new(inner), interceptor) - } - /// Enable decompressing requests with the given encoding. - #[must_use] - pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.accept_compression_encodings.enable(encoding); - self - } - /// Compress responses with the given encoding, if the client supports it. - #[must_use] - pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.send_compression_encodings.enable(encoding); - self - } - /// Limits the maximum size of a decoded message. - /// - /// Default: `4MB` - #[must_use] - pub fn max_decoding_message_size(mut self, limit: usize) -> Self { - self.max_decoding_message_size = Some(limit); - self - } - /// Limits the maximum size of an encoded message. - /// - /// Default: `usize::MAX` - #[must_use] - pub fn max_encoding_message_size(mut self, limit: usize) -> Self { - self.max_encoding_message_size = Some(limit); - self - } - } - impl tonic::codegen::Service> for UctovnictvoServer - where - T: Uctovnictvo, - B: Body + std::marker::Send + 'static, - B::Error: Into + std::marker::Send + 'static, - { - type Response = http::Response; - type Error = std::convert::Infallible; - type Future = BoxFuture; - fn poll_ready( - &mut self, - _cx: &mut Context<'_>, - ) -> Poll> { - Poll::Ready(Ok(())) - } - fn call(&mut self, req: http::Request) -> Self::Future { - match req.uri().path() { - "/komp_ac.uctovnictvo.Uctovnictvo/PostUctovnictvo" => { - #[allow(non_camel_case_types)] - struct PostUctovnictvoSvc(pub Arc); - impl< - T: Uctovnictvo, - > tonic::server::UnaryService - for PostUctovnictvoSvc { - type Response = super::UctovnictvoResponse; - type Future = BoxFuture< - tonic::Response, - tonic::Status, - >; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::post_uctovnictvo(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = PostUctovnictvoSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/komp_ac.uctovnictvo.Uctovnictvo/GetUctovnictvo" => { - #[allow(non_camel_case_types)] - struct GetUctovnictvoSvc(pub Arc); - impl< - T: Uctovnictvo, - > tonic::server::UnaryService - for GetUctovnictvoSvc { - type Response = super::UctovnictvoResponse; - type Future = BoxFuture< - tonic::Response, - tonic::Status, - >; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::get_uctovnictvo(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = GetUctovnictvoSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/komp_ac.uctovnictvo.Uctovnictvo/GetUctovnictvoCount" => { - #[allow(non_camel_case_types)] - struct GetUctovnictvoCountSvc(pub Arc); - impl< - T: Uctovnictvo, - > tonic::server::UnaryService - for GetUctovnictvoCountSvc { - type Response = super::super::common::CountResponse; - type Future = BoxFuture< - tonic::Response, - tonic::Status, - >; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::get_uctovnictvo_count(&inner, request) - .await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = GetUctovnictvoCountSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/komp_ac.uctovnictvo.Uctovnictvo/GetUctovnictvoByPosition" => { - #[allow(non_camel_case_types)] - struct GetUctovnictvoByPositionSvc(pub Arc); - impl< - T: Uctovnictvo, - > tonic::server::UnaryService - for GetUctovnictvoByPositionSvc { - type Response = super::UctovnictvoResponse; - type Future = BoxFuture< - tonic::Response, - tonic::Status, - >; - fn call( - &mut self, - request: tonic::Request< - super::super::common::PositionRequest, - >, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::get_uctovnictvo_by_position( - &inner, - request, - ) - .await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = GetUctovnictvoByPositionSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - "/komp_ac.uctovnictvo.Uctovnictvo/PutUctovnictvo" => { - #[allow(non_camel_case_types)] - struct PutUctovnictvoSvc(pub Arc); - impl< - T: Uctovnictvo, - > tonic::server::UnaryService - for PutUctovnictvoSvc { - type Response = super::UctovnictvoResponse; - type Future = BoxFuture< - tonic::Response, - tonic::Status, - >; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::put_uctovnictvo(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = PutUctovnictvoSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - _ => { - Box::pin(async move { - let mut response = http::Response::new( - tonic::body::Body::default(), - ); - let headers = response.headers_mut(); - headers - .insert( - tonic::Status::GRPC_STATUS, - (tonic::Code::Unimplemented as i32).into(), - ); - headers - .insert( - http::header::CONTENT_TYPE, - tonic::metadata::GRPC_CONTENT_TYPE, - ); - Ok(response) - }) - } - } - } - } - impl Clone for UctovnictvoServer { - fn clone(&self) -> Self { - let inner = self.inner.clone(); - Self { - inner, - accept_compression_encodings: self.accept_compression_encodings, - send_compression_encodings: self.send_compression_encodings, - max_decoding_message_size: self.max_decoding_message_size, - max_encoding_message_size: self.max_encoding_message_size, - } - } - } - /// Generated gRPC service name - pub const SERVICE_NAME: &str = "komp_ac.uctovnictvo.Uctovnictvo"; - impl tonic::server::NamedService for UctovnictvoServer { - const NAME: &'static str = SERVICE_NAME; - } -} diff --git a/server/src/table_validation/get/service.rs b/server/src/table_validation/get/service.rs index 3698e4d..a04807f 100644 --- a/server/src/table_validation/get/service.rs +++ b/server/src/table_validation/get/service.rs @@ -77,12 +77,19 @@ impl TableValidationService for TableValidationSvc { .map_err(|e| Status::internal(format!("serialize error: {e}")))?; sqlx::query!( - r#"UPDATE table_validation_rules - SET config = $1, updated_at = now() - WHERE table_def_id = $2 AND data_key = $3"#, - json_value, + r#" + INSERT INTO table_validation_rules ( + table_def_id, data_key, config, updated_at + ) + VALUES ($1, $2, $3, now()) + ON CONFLICT (table_def_id, data_key) + DO UPDATE SET + config = EXCLUDED.config, + updated_at = now() + "#, table_def_id, - req.data_key + req.data_key, + json_value ) .execute(&self.db) .await