from typing import Dict, Any, Optional, List
from .base import BaseAPI
[docs]
class TransferRecipientAPI(BaseAPI):
"""Transfer Recipients API"""
[docs]
def create(self, type: str, name: str, account_number: str, bank_code: str,
description: Optional[str] = None, currency: Optional[str] = None,
authorization_code: Optional[str] = None, metadata: Optional[Dict] = None) -> Dict[str, Any]:
"""Create transfer recipient"""
data = self._build_query_params(
type=type, name=name, account_number=account_number, bank_code=bank_code,
description=description, currency=currency, authorization_code=authorization_code,
metadata=metadata
)
return self._post('transferrecipient', data=data)
[docs]
def bulk_create(self, batch: List[Dict[str, Any]]) -> Dict[str, Any]:
"""Create multiple transfer recipients"""
data = {'batch': batch}
return self._post('transferrecipient/bulk', data=data)
[docs]
def list(self, per_page: int = 50, page: Optional[int] = None,
from_date: Optional[str] = None, to_date: Optional[str] = None) -> Dict[str, Any]:
"""List transfer recipients"""
params = self._build_query_params(from_date=from_date, to_date=to_date)
return self._paginate('transferrecipient', params=params, per_page=per_page, page=page)
[docs]
def fetch(self, id_or_code: str) -> Dict[str, Any]:
"""Fetch transfer recipient"""
return self._get(f'transferrecipient/{id_or_code}')
[docs]
def update(self, id_or_code: str, name: Optional[str] = None, email: Optional[str] = None) -> Dict[str, Any]:
"""Update transfer recipient"""
data = self._build_query_params(name=name, email=email)
return self._put(f'transferrecipient/{id_or_code}', data=data)
[docs]
def delete(self, id_or_code: str) -> Dict[str, Any]:
"""Delete transfer recipient"""
return self._delete(f'transferrecipient/{id_or_code}')