from typing import Dict, Any, Optional, List
from .base import BaseAPI
[docs]
class BulkChargeAPI(BaseAPI):
"""Bulk Charges API"""
[docs]
def initiate(self, body: List[Dict[str, Any]]) -> Dict[str, Any]:
"""Initiate bulk charge"""
data = body
return self._post('bulkcharge', 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 bulk charges"""
params = self._build_query_params(from_date=from_date, to_date=to_date)
return self._paginate('bulkcharge', params=params, per_page=per_page, page=page)
[docs]
def fetch(self, id_or_code: str) -> Dict[str, Any]:
"""Fetch bulk charge"""
return self._get(f'bulkcharge/{id_or_code}')
[docs]
def fetch_charges(self, id_or_code: str, status: Optional[str] = None,
per_page: int = 50, page: Optional[int] = None,
from_date: Optional[str] = None, to_date: Optional[str] = None) -> Dict[str, Any]:
"""Fetch charges in a batch"""
params = self._build_query_params(
status=status, from_date=from_date, to_date=to_date)
return self._paginate(f'bulkcharge/{id_or_code}/charges', params=params, per_page=per_page, page=page)
[docs]
def pause(self, batch_code: str) -> Dict[str, Any]:
"""Pause bulk charge"""
data = {'batch_code': batch_code}
return self._post('bulkcharge/pause', data=data)
[docs]
def resume(self, batch_code: str) -> Dict[str, Any]:
"""Resume bulk charge"""
data = {'batch_code': batch_code}
return self._post('bulkcharge/resume', data=data)