From 8a747db7c4daaf75738579d044f583f1389b6e87 Mon Sep 17 00:00:00 2001 From: filipriec Date: Fri, 21 Feb 2025 21:58:57 +0100 Subject: [PATCH] redesigned proto files --- build.rs | 2 +- proto/{api.proto => adresar.proto} | 35 ++++++++---------- proto/uctovnictvo.proto | 2 + src/adresar/handlers/delete_adresar.rs | 2 +- src/adresar/handlers/get_adresar.rs | 2 +- .../handlers/get_adresar_by_position.rs | 2 +- src/adresar/handlers/get_adresar_count.rs | 2 +- src/adresar/handlers/get_table_structure.rs | 2 +- src/adresar/handlers/post_adresar.rs | 2 +- src/adresar/handlers/put_adresar.rs | 2 +- src/proto/descriptor.bin | Bin 8844 -> 8416 bytes src/proto/mod.rs | 6 ++- src/server/mod.rs | 6 ++- 13 files changed, 35 insertions(+), 30 deletions(-) rename proto/{api.proto => adresar.proto} (64%) diff --git a/build.rs b/build.rs index 52dc36a..7a8b1eb 100644 --- a/build.rs +++ b/build.rs @@ -4,7 +4,7 @@ fn main() -> Result<(), Box> { .build_server(true) .file_descriptor_set_path("src/proto/descriptor.bin") .compile_protos( - &["proto/api.proto", "proto/uctovnictvo.proto"], + &["proto/adresar.proto", "proto/uctovnictvo.proto"], &["proto"], )?; Ok(()) diff --git a/proto/api.proto b/proto/adresar.proto similarity index 64% rename from proto/api.proto rename to proto/adresar.proto index 99dd4b6..a2f41bb 100644 --- a/proto/api.proto +++ b/proto/adresar.proto @@ -1,25 +1,24 @@ -// proto/api.proto +// proto/adresar.proto syntax = "proto3"; -package multieko2; +package multieko2.adresar; service Adresar { rpc PostAdresar (PostAdresarRequest) returns (AdresarResponse); rpc GetAdresar (GetAdresarRequest) returns (AdresarResponse); rpc PutAdresar (PutAdresarRequest) returns (AdresarResponse); rpc DeleteAdresar (DeleteAdresarRequest) returns (DeleteAdresarResponse); - rpc GetAdresarCount (Empty) returns (CountResponse); // New endpoint - rpc GetAdresarByPosition (PositionRequest) returns (AdresarResponse); // New endpoint - rpc GetTableStructure (Empty) returns (TableStructureResponse); // New endpoint for table structure + rpc GetAdresarCount (Empty) returns (CountResponse); + rpc GetAdresarByPosition (PositionRequest) returns (AdresarResponse); + rpc GetTableStructure (Empty) returns (TableStructureResponse); } -// Existing messages message GetAdresarRequest { - int64 id = 1; // The ID of the Adresar entry to retrieve + int64 id = 1; } message DeleteAdresarRequest { - int64 id = 1; // The ID of the Adresar entry to delete + int64 id = 1; } message PostAdresarRequest { @@ -79,28 +78,26 @@ message PutAdresarRequest { } message DeleteAdresarResponse { - bool success = 1; // Indicates whether the deletion was successful + bool success = 1; } -// New messages for the additional endpoints -message Empty {} // Empty request for count +message Empty {} message CountResponse { - int64 count = 1; // Response with the count of items + int64 count = 1; } message PositionRequest { - int64 position = 1; // Request with the position of the item to retrieve + int64 position = 1; } -// New messages for the table structure endpoint message TableStructureResponse { - repeated TableColumn columns = 1; // List of columns in the table + repeated TableColumn columns = 1; } message TableColumn { - string name = 1; // Name of the column - string data_type = 2; // Data type of the column (e.g., TEXT, INT, etc.) - bool is_nullable = 3; // Whether the column allows NULL values - bool is_primary_key = 4; // Whether the column is a primary key + string name = 1; + string data_type = 2; + bool is_nullable = 3; + bool is_primary_key = 4; } diff --git a/proto/uctovnictvo.proto b/proto/uctovnictvo.proto index b9f2e11..fb549ef 100644 --- a/proto/uctovnictvo.proto +++ b/proto/uctovnictvo.proto @@ -3,6 +3,8 @@ syntax = "proto3"; package multieko2.uctovnictvo; +import "adresar.proto"; + service Uctovnictvo { rpc PostUctovnictvo (PostUctovnictvoRequest) returns (UctovnictvoResponse); } diff --git a/src/adresar/handlers/delete_adresar.rs b/src/adresar/handlers/delete_adresar.rs index fa06f40..fc7b616 100644 --- a/src/adresar/handlers/delete_adresar.rs +++ b/src/adresar/handlers/delete_adresar.rs @@ -1,7 +1,7 @@ // src/adresar/handlers/delete_adresar.rs use tonic::Status; use sqlx::PgPool; -use crate::proto::multieko2::{DeleteAdresarRequest, DeleteAdresarResponse}; +use crate::proto::multieko2::adresar::{DeleteAdresarRequest, DeleteAdresarResponse}; pub async fn delete_adresar( db_pool: &PgPool, diff --git a/src/adresar/handlers/get_adresar.rs b/src/adresar/handlers/get_adresar.rs index b20b1f9..13e1996 100644 --- a/src/adresar/handlers/get_adresar.rs +++ b/src/adresar/handlers/get_adresar.rs @@ -2,7 +2,7 @@ use tonic::Status; use sqlx::PgPool; use crate::adresar::models::Adresar; -use crate::proto::multieko2::{GetAdresarRequest, AdresarResponse}; +use crate::proto::multieko2::adresar::{GetAdresarRequest, AdresarResponse}; pub async fn get_adresar( db_pool: &PgPool, diff --git a/src/adresar/handlers/get_adresar_by_position.rs b/src/adresar/handlers/get_adresar_by_position.rs index 9470bc9..2f9c824 100644 --- a/src/adresar/handlers/get_adresar_by_position.rs +++ b/src/adresar/handlers/get_adresar_by_position.rs @@ -1,7 +1,7 @@ // src/adresar/handlers/get_adresar_by_position.rs use tonic::{Status}; use sqlx::PgPool; -use crate::proto::multieko2::{PositionRequest, AdresarResponse, GetAdresarRequest}; +use crate::proto::multieko2::adresar::{PositionRequest, AdresarResponse, GetAdresarRequest}; use super::get_adresar; pub async fn get_adresar_by_position( diff --git a/src/adresar/handlers/get_adresar_count.rs b/src/adresar/handlers/get_adresar_count.rs index dc93c7c..6f11802 100644 --- a/src/adresar/handlers/get_adresar_count.rs +++ b/src/adresar/handlers/get_adresar_count.rs @@ -1,7 +1,7 @@ // src/adresar/handlers/get_adresar_count.rs use tonic::Status; use sqlx::PgPool; -use crate::proto::multieko2::{CountResponse, Empty}; +use crate::proto::multieko2::adresar::{CountResponse, Empty}; pub async fn get_adresar_count( db_pool: &PgPool, diff --git a/src/adresar/handlers/get_table_structure.rs b/src/adresar/handlers/get_table_structure.rs index e1b6cb1..0b98a52 100644 --- a/src/adresar/handlers/get_table_structure.rs +++ b/src/adresar/handlers/get_table_structure.rs @@ -1,7 +1,7 @@ // src/adresar/handlers/get_table_structure.rs use tonic::Status; use sqlx::PgPool; -use crate::proto::multieko2::{TableStructureResponse, TableColumn, Empty}; +use crate::proto::multieko2::adresar::{TableStructureResponse, TableColumn, Empty}; pub async fn get_table_structure( db_pool: &PgPool, diff --git a/src/adresar/handlers/post_adresar.rs b/src/adresar/handlers/post_adresar.rs index f47c608..cb5826b 100644 --- a/src/adresar/handlers/post_adresar.rs +++ b/src/adresar/handlers/post_adresar.rs @@ -2,7 +2,7 @@ use tonic::Status; use sqlx::PgPool; use crate::adresar::models::Adresar; -use crate::proto::multieko2::{PostAdresarRequest, AdresarResponse}; +use crate::proto::multieko2::adresar::{PostAdresarRequest, AdresarResponse}; pub async fn post_adresar( db_pool: &PgPool, diff --git a/src/adresar/handlers/put_adresar.rs b/src/adresar/handlers/put_adresar.rs index 51ca751..c549bd4 100644 --- a/src/adresar/handlers/put_adresar.rs +++ b/src/adresar/handlers/put_adresar.rs @@ -2,7 +2,7 @@ use tonic::Status; use sqlx::PgPool; use crate::adresar::models::Adresar; -use crate::proto::multieko2::{PutAdresarRequest, AdresarResponse}; +use crate::proto::multieko2::adresar::{PutAdresarRequest, AdresarResponse}; pub async fn put_adresar( db_pool: &PgPool, diff --git a/src/proto/descriptor.bin b/src/proto/descriptor.bin index ffe8df85ab22b03801ad819b757007c1015bbaac..155655a559e00ed6128a92937baacc1f6db727e5 100644 GIT binary patch literal 8416 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 W*GAmff(f)`u2mq=mZ!?`<>^0|mvR~a literal 8844 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 diff --git a/src/proto/mod.rs b/src/proto/mod.rs index 8f281a7..a76de70 100644 --- a/src/proto/mod.rs +++ b/src/proto/mod.rs @@ -1,10 +1,14 @@ // src/proto/mod.rs pub mod multieko2 { tonic::include_proto!("multieko2"); + + pub mod adresar { + tonic::include_proto!("multieko2.adresar"); + } + pub mod uctovnictvo { tonic::include_proto!("multieko2.uctovnictvo"); } - // Include the file descriptor set pub const FILE_DESCRIPTOR_SET: &[u8] = include_bytes!("descriptor.bin"); } diff --git a/src/server/mod.rs b/src/server/mod.rs index 39776ea..1e4e40d 100644 --- a/src/server/mod.rs +++ b/src/server/mod.rs @@ -6,11 +6,13 @@ use crate::adresar::handlers::{ }; use crate::uctovnictvo::handlers::post_uctovnictvo; use crate::proto::multieko2::{ + FILE_DESCRIPTOR_SET, +}; +use crate::proto::multieko2::adresar::{ + adresar_server::{Adresar, AdresarServer}, PostAdresarRequest, AdresarResponse, GetAdresarRequest, PutAdresarRequest, DeleteAdresarRequest, DeleteAdresarResponse, PositionRequest, CountResponse, Empty, TableStructureResponse, - adresar_server::{Adresar, AdresarServer}, - FILE_DESCRIPTOR_SET, }; use crate::proto::multieko2::uctovnictvo::{ uctovnictvo_server::{Uctovnictvo, UctovnictvoServer},