redesigned proto files

This commit is contained in:
filipriec
2025-02-21 21:58:57 +01:00
parent b300abbfa5
commit 8a747db7c4
13 changed files with 35 additions and 30 deletions

View File

@@ -4,7 +4,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
.build_server(true) .build_server(true)
.file_descriptor_set_path("src/proto/descriptor.bin") .file_descriptor_set_path("src/proto/descriptor.bin")
.compile_protos( .compile_protos(
&["proto/api.proto", "proto/uctovnictvo.proto"], &["proto/adresar.proto", "proto/uctovnictvo.proto"],
&["proto"], &["proto"],
)?; )?;
Ok(()) Ok(())

View File

@@ -1,25 +1,24 @@
// proto/api.proto // proto/adresar.proto
syntax = "proto3"; syntax = "proto3";
package multieko2; package multieko2.adresar;
service Adresar { service Adresar {
rpc PostAdresar (PostAdresarRequest) returns (AdresarResponse); rpc PostAdresar (PostAdresarRequest) returns (AdresarResponse);
rpc GetAdresar (GetAdresarRequest) returns (AdresarResponse); rpc GetAdresar (GetAdresarRequest) returns (AdresarResponse);
rpc PutAdresar (PutAdresarRequest) returns (AdresarResponse); rpc PutAdresar (PutAdresarRequest) returns (AdresarResponse);
rpc DeleteAdresar (DeleteAdresarRequest) returns (DeleteAdresarResponse); rpc DeleteAdresar (DeleteAdresarRequest) returns (DeleteAdresarResponse);
rpc GetAdresarCount (Empty) returns (CountResponse); // New endpoint rpc GetAdresarCount (Empty) returns (CountResponse);
rpc GetAdresarByPosition (PositionRequest) returns (AdresarResponse); // New endpoint rpc GetAdresarByPosition (PositionRequest) returns (AdresarResponse);
rpc GetTableStructure (Empty) returns (TableStructureResponse); // New endpoint for table structure rpc GetTableStructure (Empty) returns (TableStructureResponse);
} }
// Existing messages
message GetAdresarRequest { message GetAdresarRequest {
int64 id = 1; // The ID of the Adresar entry to retrieve int64 id = 1;
} }
message DeleteAdresarRequest { message DeleteAdresarRequest {
int64 id = 1; // The ID of the Adresar entry to delete int64 id = 1;
} }
message PostAdresarRequest { message PostAdresarRequest {
@@ -79,28 +78,26 @@ message PutAdresarRequest {
} }
message DeleteAdresarResponse { message DeleteAdresarResponse {
bool success = 1; // Indicates whether the deletion was successful bool success = 1;
} }
// New messages for the additional endpoints message Empty {}
message Empty {} // Empty request for count
message CountResponse { message CountResponse {
int64 count = 1; // Response with the count of items int64 count = 1;
} }
message PositionRequest { 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 { message TableStructureResponse {
repeated TableColumn columns = 1; // List of columns in the table repeated TableColumn columns = 1;
} }
message TableColumn { message TableColumn {
string name = 1; // Name of the column string name = 1;
string data_type = 2; // Data type of the column (e.g., TEXT, INT, etc.) string data_type = 2;
bool is_nullable = 3; // Whether the column allows NULL values bool is_nullable = 3;
bool is_primary_key = 4; // Whether the column is a primary key bool is_primary_key = 4;
} }

View File

@@ -3,6 +3,8 @@ syntax = "proto3";
package multieko2.uctovnictvo; package multieko2.uctovnictvo;
import "adresar.proto";
service Uctovnictvo { service Uctovnictvo {
rpc PostUctovnictvo (PostUctovnictvoRequest) returns (UctovnictvoResponse); rpc PostUctovnictvo (PostUctovnictvoRequest) returns (UctovnictvoResponse);
} }

View File

@@ -1,7 +1,7 @@
// src/adresar/handlers/delete_adresar.rs // src/adresar/handlers/delete_adresar.rs
use tonic::Status; use tonic::Status;
use sqlx::PgPool; use sqlx::PgPool;
use crate::proto::multieko2::{DeleteAdresarRequest, DeleteAdresarResponse}; use crate::proto::multieko2::adresar::{DeleteAdresarRequest, DeleteAdresarResponse};
pub async fn delete_adresar( pub async fn delete_adresar(
db_pool: &PgPool, db_pool: &PgPool,

View File

@@ -2,7 +2,7 @@
use tonic::Status; use tonic::Status;
use sqlx::PgPool; use sqlx::PgPool;
use crate::adresar::models::Adresar; use crate::adresar::models::Adresar;
use crate::proto::multieko2::{GetAdresarRequest, AdresarResponse}; use crate::proto::multieko2::adresar::{GetAdresarRequest, AdresarResponse};
pub async fn get_adresar( pub async fn get_adresar(
db_pool: &PgPool, db_pool: &PgPool,

View File

@@ -1,7 +1,7 @@
// src/adresar/handlers/get_adresar_by_position.rs // src/adresar/handlers/get_adresar_by_position.rs
use tonic::{Status}; use tonic::{Status};
use sqlx::PgPool; use sqlx::PgPool;
use crate::proto::multieko2::{PositionRequest, AdresarResponse, GetAdresarRequest}; use crate::proto::multieko2::adresar::{PositionRequest, AdresarResponse, GetAdresarRequest};
use super::get_adresar; use super::get_adresar;
pub async fn get_adresar_by_position( pub async fn get_adresar_by_position(

View File

@@ -1,7 +1,7 @@
// src/adresar/handlers/get_adresar_count.rs // src/adresar/handlers/get_adresar_count.rs
use tonic::Status; use tonic::Status;
use sqlx::PgPool; use sqlx::PgPool;
use crate::proto::multieko2::{CountResponse, Empty}; use crate::proto::multieko2::adresar::{CountResponse, Empty};
pub async fn get_adresar_count( pub async fn get_adresar_count(
db_pool: &PgPool, db_pool: &PgPool,

View File

@@ -1,7 +1,7 @@
// src/adresar/handlers/get_table_structure.rs // src/adresar/handlers/get_table_structure.rs
use tonic::Status; use tonic::Status;
use sqlx::PgPool; use sqlx::PgPool;
use crate::proto::multieko2::{TableStructureResponse, TableColumn, Empty}; use crate::proto::multieko2::adresar::{TableStructureResponse, TableColumn, Empty};
pub async fn get_table_structure( pub async fn get_table_structure(
db_pool: &PgPool, db_pool: &PgPool,

View File

@@ -2,7 +2,7 @@
use tonic::Status; use tonic::Status;
use sqlx::PgPool; use sqlx::PgPool;
use crate::adresar::models::Adresar; use crate::adresar::models::Adresar;
use crate::proto::multieko2::{PostAdresarRequest, AdresarResponse}; use crate::proto::multieko2::adresar::{PostAdresarRequest, AdresarResponse};
pub async fn post_adresar( pub async fn post_adresar(
db_pool: &PgPool, db_pool: &PgPool,

View File

@@ -2,7 +2,7 @@
use tonic::Status; use tonic::Status;
use sqlx::PgPool; use sqlx::PgPool;
use crate::adresar::models::Adresar; use crate::adresar::models::Adresar;
use crate::proto::multieko2::{PutAdresarRequest, AdresarResponse}; use crate::proto::multieko2::adresar::{PutAdresarRequest, AdresarResponse};
pub async fn put_adresar( pub async fn put_adresar(
db_pool: &PgPool, db_pool: &PgPool,

Binary file not shown.

View File

@@ -1,10 +1,14 @@
// src/proto/mod.rs // src/proto/mod.rs
pub mod multieko2 { pub mod multieko2 {
tonic::include_proto!("multieko2"); tonic::include_proto!("multieko2");
pub mod adresar {
tonic::include_proto!("multieko2.adresar");
}
pub mod uctovnictvo { pub mod uctovnictvo {
tonic::include_proto!("multieko2.uctovnictvo"); tonic::include_proto!("multieko2.uctovnictvo");
} }
// Include the file descriptor set
pub const FILE_DESCRIPTOR_SET: &[u8] = include_bytes!("descriptor.bin"); pub const FILE_DESCRIPTOR_SET: &[u8] = include_bytes!("descriptor.bin");
} }

View File

@@ -6,11 +6,13 @@ use crate::adresar::handlers::{
}; };
use crate::uctovnictvo::handlers::post_uctovnictvo; use crate::uctovnictvo::handlers::post_uctovnictvo;
use crate::proto::multieko2::{ use crate::proto::multieko2::{
FILE_DESCRIPTOR_SET,
};
use crate::proto::multieko2::adresar::{
adresar_server::{Adresar, AdresarServer},
PostAdresarRequest, AdresarResponse, GetAdresarRequest, PutAdresarRequest, PostAdresarRequest, AdresarResponse, GetAdresarRequest, PutAdresarRequest,
DeleteAdresarRequest, DeleteAdresarResponse, PositionRequest, CountResponse, Empty, DeleteAdresarRequest, DeleteAdresarResponse, PositionRequest, CountResponse, Empty,
TableStructureResponse, TableStructureResponse,
adresar_server::{Adresar, AdresarServer},
FILE_DESCRIPTOR_SET,
}; };
use crate::proto::multieko2::uctovnictvo::{ use crate::proto::multieko2::uctovnictvo::{
uctovnictvo_server::{Uctovnictvo, UctovnictvoServer}, uctovnictvo_server::{Uctovnictvo, UctovnictvoServer},