grpc endpoint showing database schema for the frontend, now working

This commit is contained in:
filipriec
2025-02-21 01:55:33 +01:00
parent d105d06230
commit 5d9fffce13
5 changed files with 144 additions and 1 deletions

View File

@@ -0,0 +1,116 @@
// src/adresar/handlers/get_table_structure.rs
use tonic::Status;
use sqlx::PgPool;
use crate::proto::multieko2::{TableStructureResponse, TableColumn, Empty};
pub async fn get_table_structure(
db_pool: &PgPool,
_request: Empty,
) -> Result<TableStructureResponse, Status> {
let columns = vec![
TableColumn {
name: "id".to_string(),
data_type: "BIGSERIAL".to_string(), // Updated field name
is_nullable: false,
is_primary_key: true,
},
TableColumn {
name: "firma".to_string(),
data_type: "TEXT".to_string(), // Updated field name
is_nullable: false,
is_primary_key: false,
},
TableColumn {
name: "kz".to_string(),
data_type: "TEXT".to_string(), // Updated field name
is_nullable: true,
is_primary_key: false,
},
TableColumn {
name: "drc".to_string(),
data_type: "TEXT".to_string(), // Updated field name
is_nullable: true,
is_primary_key: false,
},
TableColumn {
name: "ulica".to_string(),
data_type: "TEXT".to_string(), // Updated field name
is_nullable: true,
is_primary_key: false,
},
TableColumn {
name: "psc".to_string(),
data_type: "TEXT".to_string(), // Updated field name
is_nullable: true,
is_primary_key: false,
},
TableColumn {
name: "mesto".to_string(),
data_type: "TEXT".to_string(), // Updated field name
is_nullable: true,
is_primary_key: false,
},
TableColumn {
name: "stat".to_string(),
data_type: "TEXT".to_string(), // Updated field name
is_nullable: true,
is_primary_key: false,
},
TableColumn {
name: "banka".to_string(),
data_type: "TEXT".to_string(), // Updated field name
is_nullable: true,
is_primary_key: false,
},
TableColumn {
name: "ucet".to_string(),
data_type: "TEXT".to_string(), // Updated field name
is_nullable: true,
is_primary_key: false,
},
TableColumn {
name: "skladm".to_string(),
data_type: "TEXT".to_string(), // Updated field name
is_nullable: true,
is_primary_key: false,
},
TableColumn {
name: "ico".to_string(),
data_type: "TEXT".to_string(), // Updated field name
is_nullable: true,
is_primary_key: false,
},
TableColumn {
name: "kontakt".to_string(),
data_type: "TEXT".to_string(), // Updated field name
is_nullable: true,
is_primary_key: false,
},
TableColumn {
name: "telefon".to_string(),
data_type: "TEXT".to_string(), // Updated field name
is_nullable: true,
is_primary_key: false,
},
TableColumn {
name: "skladu".to_string(),
data_type: "TEXT".to_string(), // Updated field name
is_nullable: true,
is_primary_key: false,
},
TableColumn {
name: "fax".to_string(),
data_type: "TEXT".to_string(), // Updated field name
is_nullable: true,
is_primary_key: false,
},
TableColumn {
name: "created_at".to_string(),
data_type: "TIMESTAMPTZ".to_string(), // Updated field name
is_nullable: false,
is_primary_key: false,
},
];
Ok(TableStructureResponse { columns })
}