// 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 { 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(), }) }