52 lines
1.5 KiB
Rust
52 lines
1.5 KiB
Rust
// src/uctovnictvo/handlers/get_uctovnictvo.rs
|
|
use tonic::Status;
|
|
use sqlx::PgPool;
|
|
use crate::uctovnictvo::models::Uctovnictvo;
|
|
use common::proto::multieko2::uctovnictvo::{GetUctovnictvoRequest, UctovnictvoResponse};
|
|
|
|
pub async fn get_uctovnictvo(
|
|
db_pool: &PgPool,
|
|
request: GetUctovnictvoRequest,
|
|
) -> Result<UctovnictvoResponse, Status> {
|
|
let uctovnictvo = sqlx::query_as!(
|
|
Uctovnictvo,
|
|
r#"
|
|
SELECT
|
|
id,
|
|
deleted,
|
|
adresar_id,
|
|
c_dokladu,
|
|
datum as "datum: chrono::NaiveDate",
|
|
c_faktury,
|
|
obsah,
|
|
stredisko,
|
|
c_uctu,
|
|
md,
|
|
identif,
|
|
poznanka,
|
|
firma
|
|
FROM uctovnictvo
|
|
WHERE id = $1
|
|
"#,
|
|
request.id
|
|
)
|
|
.fetch_one(db_pool)
|
|
.await
|
|
.map_err(|e| Status::not_found(e.to_string()))?;
|
|
|
|
Ok(UctovnictvoResponse {
|
|
id: uctovnictvo.id,
|
|
adresar_id: uctovnictvo.adresar_id,
|
|
c_dokladu: uctovnictvo.c_dokladu,
|
|
datum: uctovnictvo.datum.format("%d.%m.%Y").to_string(),
|
|
c_faktury: uctovnictvo.c_faktury,
|
|
obsah: uctovnictvo.obsah.unwrap_or_default(),
|
|
stredisko: uctovnictvo.stredisko.unwrap_or_default(),
|
|
c_uctu: uctovnictvo.c_uctu.unwrap_or_default(),
|
|
md: uctovnictvo.md.unwrap_or_default(),
|
|
identif: uctovnictvo.identif.unwrap_or_default(),
|
|
poznanka: uctovnictvo.poznanka.unwrap_or_default(),
|
|
firma: uctovnictvo.firma,
|
|
})
|
|
}
|