Source code for djpaystack.api.splits

from typing import Dict, Any, Optional, List
from .base import BaseAPI


[docs] class SplitAPI(BaseAPI): """Transaction Splits API"""
[docs] def create( self, name: str, type: str, currency: str, subaccounts: List[Dict[str, Any]], bearer_type: str, bearer_subaccount: str, **kwargs ) -> Dict[str, Any]: """Create a split""" data = self._build_query_params( name=name, type=type, currency=currency, subaccounts=subaccounts, bearer_type=bearer_type, bearer_subaccount=bearer_subaccount, **kwargs ) return self._post('split', data=data)
[docs] def list(self, name: Optional[str] = None, active: Optional[bool] = None, sort_by: Optional[str] = None, per_page: int = 50, page: Optional[int] = None) -> Dict[str, Any]: """List splits""" params = self._build_query_params( name=name, active=active, sort_by=sort_by) return self._paginate('split', params=params, per_page=per_page, page=page)
[docs] def fetch(self, id: str) -> Dict[str, Any]: """Fetch a split""" return self._get(f'split/{id}')
[docs] def update(self, id: str, name: Optional[str] = None, active: Optional[bool] = None, bearer_type: Optional[str] = None, bearer_subaccount: Optional[str] = None) -> Dict[str, Any]: """Update a split""" data = self._build_query_params( name=name, active=active, bearer_type=bearer_type, bearer_subaccount=bearer_subaccount ) return self._put(f'split/{id}', data=data)
[docs] def add_subaccount(self, id: str, subaccount: str, share: int) -> Dict[str, Any]: """Add subaccount to split""" data = {'subaccount': subaccount, 'share': share} return self._post(f'split/{id}/subaccount/add', data=data)
[docs] def remove_subaccount(self, id: str, subaccount: str) -> Dict[str, Any]: """Remove subaccount from split""" data = {'subaccount': subaccount} return self._post(f'split/{id}/subaccount/remove', data=data)