Model/infrastructure/abri/abri_client.py
Daniel Roth dd451a03a8 Abri log_job returns the OpenHousing job number from the relay success response 🟩
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 14:22:56 +00:00

23 lines
806 B
Python

import xml.etree.ElementTree as ET
import requests
from domain.abri.models import JobLogged, LogJobRequest, LogJobResult
from infrastructure.abri.config import AbriConfig
class AbriClient:
def __init__(self, config: AbriConfig) -> None:
self._config = config
self._session = requests.Session()
def log_job(self, request: LogJobRequest) -> LogJobResult:
response = self._session.post(self._config.endpoint_url, data=b"")
root = ET.fromstring(response.content)
job_logged = root.find("Jobs/Job_logged")
if job_logged is None:
raise ValueError("Job_logged element missing from relay response")
return JobLogged(
job_no=job_logged.attrib["job_no"],
logged_info=job_logged.attrib["logged_info"],
)