From 6548343abadb804c061ccbaca999b50fa95079be Mon Sep 17 00:00:00 2001 From: Priec Date: Sun, 13 Sep 2026 22:26:14 +0200 Subject: [PATCH] create profile rpc --- client-gui2 | 2 +- common/proto/table_definition.proto | 13 +++ common/src/proto/descriptor.bin | Bin 265211 -> 266465 bytes common/src/proto/komp_ac.table_definition.rs | 99 +++++++++++++++++++ komp-app/src/grpc.rs | 13 +++ server | 2 +- 6 files changed, 127 insertions(+), 2 deletions(-) diff --git a/client-gui2 b/client-gui2 index fb0322b7..e3798fc8 160000 --- a/client-gui2 +++ b/client-gui2 @@ -1 +1 @@ -Subproject commit fb0322b75f12f94e8ecbbcf65e0b2dc4192ecd56 +Subproject commit e3798fc82f87a8e1fb27c09ba04a9a912a3c3fcd diff --git a/common/proto/table_definition.proto b/common/proto/table_definition.proto index 2eba3457..da27436c 100644 --- a/common/proto/table_definition.proto +++ b/common/proto/table_definition.proto @@ -9,6 +9,9 @@ import "common.proto"; // logical "profiles" (schemas). Each table has stored structure, links, and // validation rules. service TableDefinition { + // Creates a profile with default modules and managed structures, without a user table. + rpc CreateProfile(CreateProfileRequest) returns (CreateProfileResponse); + rpc GetModuleConfiguration(GetModuleConfigurationRequest) returns (ModuleConfiguration); rpc SetModuleConfiguration(SetModuleConfigurationRequest) returns (ModuleConfiguration); @@ -108,6 +111,16 @@ service TableDefinition { rpc DeleteProfile(DeleteProfileRequest) returns (DeleteProfileResponse); } +message CreateProfileRequest { + string profile_name = 1; + // Omit to leave the bookkeeping currency unconfigured. + optional string accounting_currency = 2; +} + +message CreateProfileResponse { + int64 profile_id = 1; +} + message ModuleScope { oneof target { komp_ac.common.Empty defaults = 1; diff --git a/common/src/proto/descriptor.bin b/common/src/proto/descriptor.bin index 361635aadacd6f7194d59fbfa70db6092f57c7f6..2bad5de80c8927de5ce7ded7cac31a2ba983b92b 100644 GIT binary patch delta 24557 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

B{aKc2R=O5%+{W_$YV6m?7+PKxx#psZVN08MKp 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 AX#fBK diff --git a/common/src/proto/komp_ac.table_definition.rs b/common/src/proto/komp_ac.table_definition.rs index 403ac8b2..3dbd3048 100644 --- a/common/src/proto/komp_ac.table_definition.rs +++ b/common/src/proto/komp_ac.table_definition.rs @@ -1,6 +1,21 @@ // This file is @generated by prost-build. #[derive(serde::Serialize, serde::Deserialize)] #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct CreateProfileRequest { + #[prost(string, tag = "1")] + pub profile_name: ::prost::alloc::string::String, + /// Omit to leave the bookkeeping currency unconfigured. + #[prost(string, optional, tag = "2")] + pub accounting_currency: ::core::option::Option<::prost::alloc::string::String>, +} +#[derive(serde::Serialize, serde::Deserialize)] +#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)] +pub struct CreateProfileResponse { + #[prost(int64, tag = "1")] + pub profile_id: i64, +} +#[derive(serde::Serialize, serde::Deserialize)] +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] pub struct ModuleScope { #[prost(oneof = "module_scope::Target", tags = "1, 2")] pub target: ::core::option::Option, @@ -1470,6 +1485,36 @@ pub mod table_definition_client { self.inner = self.inner.max_encoding_message_size(limit); self } + /// Creates a profile with default modules and managed structures, without a user table. + pub async fn create_profile( + &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_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/komp_ac.table_definition.TableDefinition/CreateProfile", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "komp_ac.table_definition.TableDefinition", + "CreateProfile", + ), + ); + self.inner.unary(req, path, codec).await + } pub async fn get_module_configuration( &mut self, request: impl tonic::IntoRequest, @@ -2288,6 +2333,14 @@ pub mod table_definition_server { /// 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 { + /// Creates a profile with default modules and managed structures, without a user table. + async fn create_profile( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; async fn get_module_configuration( &self, request: tonic::Request, @@ -2598,6 +2651,52 @@ pub mod table_definition_server { } fn call(&mut self, req: http::Request) -> Self::Future { match req.uri().path() { + "/komp_ac.table_definition.TableDefinition/CreateProfile" => { + #[allow(non_camel_case_types)] + struct CreateProfileSvc(pub Arc); + impl< + T: TableDefinition, + > tonic::server::UnaryService + for CreateProfileSvc { + type Response = super::CreateProfileResponse; + 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 { + ::create_profile(&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 = CreateProfileSvc(inner); + let codec = tonic_prost::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/GetModuleConfiguration" => { #[allow(non_camel_case_types)] struct GetModuleConfigurationSvc(pub Arc); diff --git a/komp-app/src/grpc.rs b/komp-app/src/grpc.rs index f116b5d9..05690c8d 100644 --- a/komp-app/src/grpc.rs +++ b/komp-app/src/grpc.rs @@ -1405,6 +1405,19 @@ impl GrpcClient { .into_inner()) } + pub async fn create_profile( + &mut self, + req: common::proto::komp_ac::table_definition::CreateProfileRequest, + ) -> Result { + let request = self.authenticated_request(req)?; + Ok(self + .table_definition_client + .create_profile(request) + .await + .context("gRPC CreateProfile call failed")? + .into_inner()) + } + pub async fn copy_profile( &mut self, request: common::proto::komp_ac::table_definition::CopyProfileRequest, diff --git a/server b/server index 395cfd16..de6f24fd 160000 --- a/server +++ b/server @@ -1 +1 @@ -Subproject commit 395cfd164415ac1c44b568289d6fdc2da6594161 +Subproject commit de6f24fdbdb416dae1a79bd4dc67585f8a6f90e8