working delete now
This commit is contained in:
@@ -11,12 +11,17 @@ 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);
|
||||||
}
|
}
|
||||||
|
|
||||||
message GetAdresarRequest {
|
message GetAdresarRequest {
|
||||||
int64 id = 1; // The ID of the Adresar entry to retrieve
|
int64 id = 1; // The ID of the Adresar entry to retrieve
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message DeleteAdresarRequest {
|
||||||
|
int64 id = 1; // The ID of the Adresar entry to delete
|
||||||
|
}
|
||||||
|
|
||||||
message PostAdresarRequest {
|
message PostAdresarRequest {
|
||||||
string firma = 1;
|
string firma = 1;
|
||||||
string kz = 2;
|
string kz = 2;
|
||||||
@@ -80,3 +85,7 @@ message DataRequest {
|
|||||||
message DataResponse {
|
message DataResponse {
|
||||||
string processed_data = 1;
|
string processed_data = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message DeleteAdresarResponse {
|
||||||
|
bool success = 1; // Indicates whether the deletion was successful
|
||||||
|
}
|
||||||
|
|||||||
156
src/adresar/docs/example.txt
Normal file
156
src/adresar/docs/example.txt
Normal 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"
|
||||||
|
}
|
||||||
@@ -3,7 +3,9 @@
|
|||||||
pub mod post_adresar;
|
pub mod post_adresar;
|
||||||
pub mod get_adresar;
|
pub mod get_adresar;
|
||||||
pub mod put_adresar;
|
pub mod put_adresar;
|
||||||
|
pub mod delete_adresar;
|
||||||
|
|
||||||
pub use post_adresar::post_adresar;
|
pub use post_adresar::post_adresar;
|
||||||
pub use get_adresar::get_adresar;
|
pub use get_adresar::get_adresar;
|
||||||
pub use put_adresar::put_adresar;
|
pub use put_adresar::put_adresar;
|
||||||
|
pub use delete_adresar::delete_adresar;
|
||||||
|
|||||||
25
src/adresar/handlers/delete_adresar.rs
Normal file
25
src/adresar/handlers/delete_adresar.rs
Normal 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.
@@ -2,9 +2,10 @@
|
|||||||
use tonic::{Request, Response, Status};
|
use tonic::{Request, Response, Status};
|
||||||
use tonic_reflection::server::Builder as ReflectionBuilder;
|
use tonic_reflection::server::Builder as ReflectionBuilder;
|
||||||
use crate::db;
|
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::{
|
use crate::proto::multieko2::{
|
||||||
PostAdresarRequest, AdresarResponse, GetAdresarRequest, PutAdresarRequest,
|
PostAdresarRequest, AdresarResponse, GetAdresarRequest, PutAdresarRequest,
|
||||||
|
DeleteAdresarRequest, DeleteAdresarResponse, // Add these imports
|
||||||
adresar_server::{Adresar, AdresarServer},
|
adresar_server::{Adresar, AdresarServer},
|
||||||
FILE_DESCRIPTOR_SET,
|
FILE_DESCRIPTOR_SET,
|
||||||
};
|
};
|
||||||
@@ -38,6 +39,14 @@ impl Adresar for AdresarService {
|
|||||||
let response = put_adresar(&self.db_pool, request.into_inner()).await?;
|
let response = put_adresar(&self.db_pool, request.into_inner()).await?;
|
||||||
Ok(Response::new(response))
|
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>> {
|
pub async fn run_server(db_pool: sqlx::PgPool) -> Result<(), Box<dyn std::error::Error>> {
|
||||||
|
|||||||
Reference in New Issue
Block a user