26 lines
825 B
Python
26 lines
825 B
Python
from .schemas import DadosCompras, PayloadCompras
|
|
from .service import processar_compras
|
|
from app.services.api_cliente import
|
|
from app.services.holmes import
|
|
|
|
|
|
async def processar_compras(
|
|
dados: DadosCompras
|
|
) -> dict:
|
|
payload = montar_payload(dados)
|
|
|
|
ok, retorno = await apollo.enviar_compra(payload.model_dump(mode="json"), conn)
|
|
if not ok:
|
|
raise HTTPException(502, f"Falha ao enviar para a API externa: {retorno}")
|
|
return {"status": "enviado", "id_processo": dados.id, "retorno": retorno}
|
|
|
|
def montar_payload(dados: DadosCompras) -> PayloadCompras:
|
|
p = dados.properties
|
|
return PayloadCompras(
|
|
cnpj=p.cnpj,
|
|
pedido_linx=p.pedido_linx,
|
|
fornecedor=p.fornecedor,
|
|
tipo=p.tipo_compra,
|
|
valor_total=p.total_parcelas,
|
|
parcelas=p.parcelas,
|
|
)
|