working delete now

This commit is contained in:
filipriec
2025-02-17 23:01:13 +01:00
parent 479700fb92
commit 4cea540cae
6 changed files with 202 additions and 1 deletions

View File

@@ -0,0 +1,156 @@
grpcurl -plaintext -d '{"id": 1}' localhost:50051 multieko2.Adresar/GetAdresar
{
"id": "1",
"firma": "Updated Firma",
"kz": "Updated KZ",
"drc": "Updated DRC",
"ulica": "Updated Ulica",
"psc": "Updated PSC",
"mesto": "Updated Mesto",
"stat": "Updated Stat",
"banka": "Updated Banka",
"ucet": "Updated Ucet",
"skladm": "Updated Skladm",
"ico": "Updated ICO",
"kontakt": "Updated Kontakt",
"telefon": "Updated Telefon",
"skladu": "Updated Skladu",
"fax": "Updated Fax"
}
grpcurl -plaintext -d '{"id": 2}' localhost:50051 multieko2.Adresar/GetAdresar
{
"id": "2",
"firma": "asdfasf",
"kz": " ",
"drc": " ",
"ulica": " ",
"psc": "sdfasdf",
"mesto": "asf",
"stat": "as",
"banka": "df",
"ucet": "asf",
"skladm": "f",
"ico": "f",
"kontakt": "f",
"telefon": "f",
"skladu": "f",
"fax": " "
}
grpcurl -plaintext -d '{"id": 1}' localhost:50051 multieko2.Adresar/DeleteAdresar
{
"success": true
}
grpcurl -plaintext -d '{"id": 1}' localhost:50051 multieko2.Adresar/GetAdresar
ERROR:
Code: NotFound
Message: no rows returned by a query that expected to return at least one row
grpcurl -plaintext -d '{"id": 2}' localhost:50051 multieko2.Adresar/GetAdresar
{
"id": "2",
"firma": "asdfasf",
"kz": " ",
"drc": " ",
"ulica": " ",
"psc": "sdfasdf",
"mesto": "asf",
"stat": "as",
"banka": "df",
"ucet": "asf",
"skladm": "f",
"ico": "f",
"kontakt": "f",
"telefon": "f",
"skladu": "f",
"fax": " "
}
grpcurl -plaintext -d '{
"firma": "New Firma",
"kz": "New KZ",
"drc": "New DRC",
"ulica": "New Ulica",
"psc": "New PSC",
"mesto": "New Mesto",
"stat": "New Stat",
"banka": "New Banka",
"ucet": "New Ucet",
"skladm": "New Skladm",
"ico": "New ICO",
"kontakt": "New Kontakt",
"telefon": "New Telefon",
"skladu": "New Skladu",
"fax": "New Fax"
}' localhost:50051 multieko2.Adresar/PostAdresar
{
"id": "43",
"firma": "New Firma",
"kz": "New KZ",
"drc": "New DRC",
"ulica": "New Ulica",
"psc": "New PSC",
"mesto": "New Mesto",
"stat": "New Stat",
"banka": "New Banka",
"ucet": "New Ucet",
"skladm": "New Skladm",
"ico": "New ICO",
"kontakt": "New Kontakt",
"telefon": "New Telefon",
"skladu": "New Skladu",
"fax": "New Fax"
}
grpcurl -plaintext -d '{
"id": 43,
"firma": "Updated Firma",
"kz": "Updated KZ",
"drc": "Updated DRC",
"ulica": "Updated Ulica",
"psc": "Updated PSC",
"mesto": "Updated Mesto",
"stat": "Updated Stat",
"banka": "Updated Banka",
"ucet": "Updated Ucet",
"skladm": "Updated Skladm",
"ico": "Updated ICO",
"kontakt": "Updated Kontakt",
"telefon": "Updated Telefon",
"skladu": "Updated Skladu",
"fax": "Updated Fax"
}' localhost:50051 multieko2.Adresar/PutAdresar
{
"id": "43",
"firma": "Updated Firma",
"kz": "Updated KZ",
"drc": "Updated DRC",
"ulica": "Updated Ulica",
"psc": "Updated PSC",
"mesto": "Updated Mesto",
"stat": "Updated Stat",
"banka": "Updated Banka",
"ucet": "Updated Ucet",
"skladm": "Updated Skladm",
"ico": "Updated ICO",
"kontakt": "Updated Kontakt",
"telefon": "Updated Telefon",
"skladu": "Updated Skladu",
"fax": "Updated Fax"
}
grpcurl -plaintext -d '{"id": 43}' localhost:50051 multieko2.Adresar/GetAdresar
{
"id": "43",
"firma": "Updated Firma",
"kz": "Updated KZ",
"drc": "Updated DRC",
"ulica": "Updated Ulica",
"psc": "Updated PSC",
"mesto": "Updated Mesto",
"stat": "Updated Stat",
"banka": "Updated Banka",
"ucet": "Updated Ucet",
"skladm": "Updated Skladm",
"ico": "Updated ICO",
"kontakt": "Updated Kontakt",
"telefon": "Updated Telefon",
"skladu": "Updated Skladu",
"fax": "Updated Fax"
}

View File

@@ -3,7 +3,9 @@
pub mod post_adresar;
pub mod get_adresar;
pub mod put_adresar;
pub mod delete_adresar;
pub use post_adresar::post_adresar;
pub use get_adresar::get_adresar;
pub use put_adresar::put_adresar;
pub use delete_adresar::delete_adresar;

View File

@@ -0,0 +1,25 @@
// src/adresar/handlers/delete_adresar.rs
use tonic::{Request, Response, Status};
use sqlx::PgPool;
use crate::proto::multieko2::{DeleteAdresarRequest, DeleteAdresarResponse};
pub async fn delete_adresar(
db_pool: &PgPool,
request: DeleteAdresarRequest,
) -> Result<DeleteAdresarResponse, Status> {
let rows_affected = sqlx::query!(
r#"
DELETE FROM adresar
WHERE id = $1
"#,
request.id
)
.execute(db_pool)
.await
.map_err(|e| Status::internal(e.to_string()))?
.rows_affected();
Ok(DeleteAdresarResponse {
success: rows_affected > 0,
})
}

Binary file not shown.

View File

@@ -2,9 +2,10 @@
use tonic::{Request, Response, Status};
use tonic_reflection::server::Builder as ReflectionBuilder;
use crate::db;
use crate::adresar::handlers::{post_adresar, get_adresar, put_adresar}; // Import the new handler
use crate::adresar::handlers::{post_adresar, get_adresar, put_adresar, delete_adresar}; // Import the new handler
use crate::proto::multieko2::{
PostAdresarRequest, AdresarResponse, GetAdresarRequest, PutAdresarRequest,
DeleteAdresarRequest, DeleteAdresarResponse, // Add these imports
adresar_server::{Adresar, AdresarServer},
FILE_DESCRIPTOR_SET,
};
@@ -38,6 +39,14 @@ impl Adresar for AdresarService {
let response = put_adresar(&self.db_pool, request.into_inner()).await?;
Ok(Response::new(response))
}
async fn delete_adresar(
&self,
request: Request<DeleteAdresarRequest>,
) -> Result<Response<DeleteAdresarResponse>, Status> {
let response = delete_adresar(&self.db_pool, request.into_inner()).await?;
Ok(Response::new(response))
}
}
pub async fn run_server(db_pool: sqlx::PgPool) -> Result<(), Box<dyn std::error::Error>> {