Files
komp_ac/src/adresar/handlers/put_adresar.rs
2025-02-17 22:40:28 +01:00

74 lines
2.1 KiB
Rust

// src/adresar/handlers/update_adresar.rs
use tonic::{Request, Response, Status};
use sqlx::PgPool;
use crate::adresar::models::Adresar;
use crate::proto::multieko2::{UpdateAdresarRequest, AdresarResponse};
pub async fn update_adresar(
db_pool: &PgPool,
request: UpdateAdresarRequest,
) -> Result<AdresarResponse, Status> {
let adresar = sqlx::query_as!(
Adresar,
r#"
UPDATE adresar
SET
firma = $2,
kz = $3,
drc = $4,
ulica = $5,
psc = $6,
mesto = $7,
stat = $8,
banka = $9,
ucet = $10,
skladm = $11,
ico = $12,
kontakt = $13,
telefon = $14,
skladu = $15,
fax = $16
WHERE id = $1
RETURNING id, firma, kz, drc, ulica, psc, mesto, stat, banka, ucet, skladm, ico, kontakt, telefon, skladu, fax
"#,
request.id,
request.firma,
request.kz,
request.drc,
request.ulica,
request.psc,
request.mesto,
request.stat,
request.banka,
request.ucet,
request.skladm,
request.ico,
request.kontakt,
request.telefon,
request.skladu,
request.fax
)
.fetch_one(db_pool)
.await
.map_err(|e| Status::internal(e.to_string()))?;
Ok(AdresarResponse {
id: adresar.id,
firma: adresar.firma,
kz: adresar.kz.unwrap_or_default(),
drc: adresar.drc.unwrap_or_default(),
ulica: adresar.ulica.unwrap_or_default(),
psc: adresar.psc.unwrap_or_default(),
mesto: adresar.mesto.unwrap_or_default(),
stat: adresar.stat.unwrap_or_default(),
banka: adresar.banka.unwrap_or_default(),
ucet: adresar.ucet.unwrap_or_default(),
skladm: adresar.skladm.unwrap_or_default(),
ico: adresar.ico.unwrap_or_default(),
kontakt: adresar.kontakt.unwrap_or_default(),
telefon: adresar.telefon.unwrap_or_default(),
skladu: adresar.skladu.unwrap_or_default(),
fax: adresar.fax.unwrap_or_default(),
})
}