74 lines
2.1 KiB
Rust
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(),
|
|
})
|
|
}
|