Skip to content

Service

domain.fetch_request.ports.service

Summary

Service port for fetch requests.

Exposes a Hexa-built CRUD service with stage-saving helpers used by the fetch pipeline orchestrator.

Classes

FetchRequestCrudsService

Bases: CrudsServiceAdaptor[FetchRequest, FetchRequestDocument]

CRUD service for fetch requests with pipeline stage helpers.

Attributes:

Name Type Description
model FetchRequest

Domain model class.

schema FetchRequestDocument

Persistence document class.

Functions
save_enrichment async
1
2
3
save_enrichment(
    id: PyObjectId, enrichment_dicts: list
) -> None

Persist the enriched expense dicts on the request source.

Parameters:

Name Type Description Default
id PyObjectId

Fetch request id.

required
enrichment_dicts list

Enriched expense dicts.

required

Returns:

Name Type Description
None None

Nothing.

save_raw_lines async
save_raw_lines(id: PyObjectId, raw_lines: list) -> None

Persist the extracted raw lines on the request source.

Parameters:

Name Type Description Default
id PyObjectId

Fetch request id.

required
raw_lines list

Raw OCR/text lines.

required

Returns:

Name Type Description
None None

Nothing.

save_txn_blocks async
save_txn_blocks(id: PyObjectId, txn_blocks: dict) -> None

Persist the extracted transaction blocks on the request source.

Parameters:

Name Type Description Default
id PyObjectId

Fetch request id.

required
txn_blocks dict

Transaction blocks keyed by order id.

required

Returns:

Name Type Description
None None

Nothing.

save_txn_dicts async
1
2
3
save_txn_dicts(
    id: PyObjectId, txn_dicts: list, txn_dicts_count: int
) -> None

Persist the parsed transaction dicts and count on the request source.

Parameters:

Name Type Description Default
id PyObjectId

Fetch request id.

required
txn_dicts list

Raw expense dicts.

required
txn_dicts_count int

Number of parsed transaction dicts.

required

Returns:

Name Type Description
None None

Nothing.

update_status async
1
2
3
4
5
6
update_status(
    id: PyObjectId,
    status: str,
    error_message: Optional[str] = None,
    retry_count: Optional[int] = None,
) -> bool

Update the request status, optionally carrying failure detail.

Parameters:

Name Type Description Default
id PyObjectId

Fetch request id.

required
status str

New status value.

required
error_message Optional[str]

Message recorded when failing.

None
retry_count Optional[int]

Retry counter recorded when failing.

None

Returns:

Name Type Description
bool bool

True when a document was patched.

Raises:

Type Description
ValueError

If status == "failed" and either error_message or retry_count is None.

Functions

get_fetch_request_service

get_fetch_request_service(repo) -> FetchRequestCrudsService

Build the fetch request CRUD service bound to a repo.

Parameters:

Name Type Description Default
repo

Repository instance used for persistence.

required

Returns:

Name Type Description
FetchRequestCrudsService FetchRequestCrudsService

The wired service.