pix_api_client/
extensions.rs

1use std::borrow::Cow;
2
3use pix_brcode::qr_dinamico::PixDinamicoSchema;
4
5use crate::cob::CobrancaImediata;
6
7pub trait FromResponse<'a, T> {
8    fn from_cobranca_imediata_basic<MN: Into<Cow<'a, str>>, MC: Into<Cow<'a, str>>>(
9        cob: CobrancaImediata,
10        merchant_name: MN,
11        merchant_city: MC,
12    ) -> T;
13}
14
15impl<'a> FromResponse<'a, PixDinamicoSchema<'a>> for PixDinamicoSchema<'a> {
16    fn from_cobranca_imediata_basic<MN: Into<Cow<'a, str>>, MC: Into<Cow<'a, str>>>(
17        cob: CobrancaImediata,
18        merchant_name: MN,
19        merchant_city: MC,
20    ) -> PixDinamicoSchema<'a> {
21        let valor_original: Cow<_> = cob.valor.original.into();
22        let location = cob.location.unwrap();
23
24        PixDinamicoSchema::standard(merchant_name, merchant_city, valor_original, location.url)
25    }
26}