diff --git a/setra_client/client.py b/setra_client/client.py index e8c2ac97040b660f7c42bb4137bc55e3555b2584..4f10c10a6276a2bfbc73640f0a90d09a01031148 100644 --- a/setra_client/client.py +++ b/setra_client/client.py @@ -1,11 +1,14 @@ """Client for connecting to SETRA API""" import logging import urllib.parse -from typing import Union +from typing import Union, Optional import requests -from setra_client.models import Batch, CompleteBatch, BatchErrors +from setra_client.models import (Batch, + CompleteBatch, + BatchErrors, + BatchProgressEnum) logger = logging.getLogger(__name__) @@ -182,11 +185,12 @@ class SetraClient(object): return cls.from_dict(data) def get_batch(self, - batch_id: int = None, - min_created_date: str = None, - max_created_date: str = None, - batch_progress: str = None, - interface: str = None): + batch_id: Optional[int] = None, + min_created_date: Optional[str] = None, + max_created_date: Optional[str] = None, + batch_progress: Optional[BatchProgressEnum] = None, + interface: Optional[str] = None): + """ GETs one or all batches from SETRA. Dates (maximal and minimal creation dates) should diff --git a/setra_client/models.py b/setra_client/models.py index 195cf2591423193f5a4e4a180f720aac22b41ae3..54d959492d21ed59630ccdad657bf72e5ebfabd9 100644 --- a/setra_client/models.py +++ b/setra_client/models.py @@ -3,7 +3,7 @@ import datetime import json import typing from typing import Optional, TypeVar - +from enum import Enum import pydantic NameType = TypeVar('NameType') @@ -30,6 +30,23 @@ class BaseModel(pydantic.BaseModel): return cls.from_dict(data) +class BatchProgressEnum(Enum): + CREATED = 'created' + VALIDATION_COMPLETED = 'validation_completed' + VALIDATION_FAILED = 'validation_failed' + SENT_TO_UBW = 'sent_to_ubw' + SEND_TO_UBW_FAILED = 'send_to_ubw_failed' + POLLING_COMPLETED = 'polling_completed' + POLLING_FAILED = 'polling_failed' + UBW_IMPORT_OK = 'ubw_import_ok' + UBW_IMPORT_FAILED = 'ubw_import_failed' + FETCH_FINAL_VOUCHERNO_COMPLETED = 'fetch_final_voucherno_completed' + FETCH_FINAL_VOUCHERNO_FAILED = 'fetch_final_voucherno_failed' + + def __str__(self): + return str(self.value) + + class Transaction(BaseModel): account: str amount: float