Source code for openbankproject_client.transaction_metadata

"""
Transaction Metadata endpoints for the OpenBankProject API Client.
"""

from typing import Dict, List, Optional, Union, Any


[docs] class TransactionMetadataEndpoints: """Transaction Metadata-related API endpoints."""
[docs] def __init__(self, client): """ Initialize the endpoint group. Args: client: OpenBankProjectClient instance """ self.client = client
[docs] def add_transaction_comment(self, bank_id: str, account_id: str, view_id: str, transaction_id: str, data: Dict) -> Dict: """ Add a Transaction Comment. Args: bank_id: Bank identifier account_id: Account identifier view_id: View identifier transaction_id: Transaction identifier data: Comment data Returns: Dict containing created comment information """ return self.client.post( f"banks/{bank_id}/accounts/{account_id}/{view_id}/transactions/{transaction_id}/metadata/comments", data=data )
[docs] def add_transaction_image(self, bank_id: str, account_id: str, view_id: str, transaction_id: str, data: Dict) -> Dict: """ Add a Transaction Image. Args: bank_id: Bank identifier account_id: Account identifier view_id: View identifier transaction_id: Transaction identifier data: Image data Returns: Dict containing created image information """ return self.client.post( f"banks/{bank_id}/accounts/{account_id}/{view_id}/transactions/{transaction_id}/metadata/images", data=data )
[docs] def add_transaction_narrative(self, bank_id: str, account_id: str, view_id: str, transaction_id: str, data: Dict) -> Dict: """ Add a Transaction Narrative. Args: bank_id: Bank identifier account_id: Account identifier view_id: View identifier transaction_id: Transaction identifier data: Narrative data Returns: Dict containing created narrative information """ return self.client.post( f"banks/{bank_id}/accounts/{account_id}/{view_id}/transactions/{transaction_id}/metadata/narrative", data=data )
[docs] def add_transaction_tag(self, bank_id: str, account_id: str, view_id: str, transaction_id: str, data: Dict) -> Dict: """ Add a Transaction Tag. Args: bank_id: Bank identifier account_id: Account identifier view_id: View identifier transaction_id: Transaction identifier data: Tag data Returns: Dict containing created tag information """ return self.client.post( f"banks/{bank_id}/accounts/{account_id}/{view_id}/transactions/{transaction_id}/metadata/tags", data=data )
[docs] def add_transaction_where_tag(self, bank_id: str, account_id: str, view_id: str, transaction_id: str, data: Dict) -> Dict: """ Add a Transaction where Tag. Args: bank_id: Bank identifier account_id: Account identifier view_id: View identifier transaction_id: Transaction identifier data: Where tag data Returns: Dict containing created where tag information """ return self.client.post( f"banks/{bank_id}/accounts/{account_id}/{view_id}/transactions/{transaction_id}/metadata/where", data=data )
[docs] def delete_transaction_comment(self, bank_id: str, account_id: str, view_id: str, transaction_id: str, comment_id: str) -> Dict: """ Delete a Transaction Comment. Args: bank_id: Bank identifier account_id: Account identifier view_id: View identifier transaction_id: Transaction identifier comment_id: Comment identifier Returns: Dict containing deletion status """ return self.client.delete( f"banks/{bank_id}/accounts/{account_id}/{view_id}/transactions/{transaction_id}/metadata/comments/{comment_id}" )
[docs] def delete_transaction_image(self, bank_id: str, account_id: str, view_id: str, transaction_id: str, image_id: str) -> Dict: """ Delete a Transaction Image. Args: bank_id: Bank identifier account_id: Account identifier view_id: View identifier transaction_id: Transaction identifier image_id: Image identifier Returns: Dict containing deletion status """ return self.client.delete( f"banks/{bank_id}/accounts/{account_id}/{view_id}/transactions/{transaction_id}/metadata/images/{image_id}" )
[docs] def delete_transaction_narrative(self, bank_id: str, account_id: str, view_id: str, transaction_id: str) -> Dict: """ Delete a Transaction Narrative. Args: bank_id: Bank identifier account_id: Account identifier view_id: View identifier transaction_id: Transaction identifier Returns: Dict containing deletion status """ return self.client.delete( f"banks/{bank_id}/accounts/{account_id}/{view_id}/transactions/{transaction_id}/metadata/narrative" )
[docs] def delete_transaction_tag(self, bank_id: str, account_id: str, view_id: str, transaction_id: str, tag_id: str) -> Dict: """ Delete a Transaction Tag. Args: bank_id: Bank identifier account_id: Account identifier view_id: View identifier transaction_id: Transaction identifier tag_id: Tag identifier Returns: Dict containing deletion status """ return self.client.delete( f"banks/{bank_id}/accounts/{account_id}/{view_id}/transactions/{transaction_id}/metadata/tags/{tag_id}" )
[docs] def get_transaction_comments(self, bank_id: str, account_id: str, view_id: str, transaction_id: str) -> Dict: """ Get Transaction Comments. Args: bank_id: Bank identifier account_id: Account identifier view_id: View identifier transaction_id: Transaction identifier Returns: Dict containing comments information """ return self.client.get( f"banks/{bank_id}/accounts/{account_id}/{view_id}/transactions/{transaction_id}/metadata/comments" )
[docs] def get_transaction_images(self, bank_id: str, account_id: str, view_id: str, transaction_id: str) -> Dict: """ Get Transaction Images. Args: bank_id: Bank identifier account_id: Account identifier view_id: View identifier transaction_id: Transaction identifier Returns: Dict containing images information """ return self.client.get( f"banks/{bank_id}/accounts/{account_id}/{view_id}/transactions/{transaction_id}/metadata/images" )
[docs] def get_transaction_tags(self, bank_id: str, account_id: str, view_id: str, transaction_id: str) -> Dict: """ Get Transaction Tags. Args: bank_id: Bank identifier account_id: Account identifier view_id: View identifier transaction_id: Transaction identifier Returns: Dict containing tags information """ return self.client.get( f"banks/{bank_id}/accounts/{account_id}/{view_id}/transactions/{transaction_id}/metadata/tags" )
[docs] def get_transaction_narrative(self, bank_id: str, account_id: str, view_id: str, transaction_id: str) -> Dict: """ Get a Transaction Narrative. Args: bank_id: Bank identifier account_id: Account identifier view_id: View identifier transaction_id: Transaction identifier Returns: Dict containing narrative information """ return self.client.get( f"banks/{bank_id}/accounts/{account_id}/{view_id}/transactions/{transaction_id}/metadata/narrative" )
[docs] def get_transaction_where_tag(self, bank_id: str, account_id: str, view_id: str, transaction_id: str) -> Dict: """ Get a Transaction where Tag. Args: bank_id: Bank identifier account_id: Account identifier view_id: View identifier transaction_id: Transaction identifier Returns: Dict containing where tag information """ return self.client.get( f"banks/{bank_id}/accounts/{account_id}/{view_id}/transactions/{transaction_id}/metadata/where" )
[docs] def update_transaction_narrative(self, bank_id: str, account_id: str, view_id: str, transaction_id: str, data: Dict) -> Dict: """ Update a Transaction Narrative. Args: bank_id: Bank identifier account_id: Account identifier view_id: View identifier transaction_id: Transaction identifier data: Updated narrative data Returns: Dict containing updated narrative information """ return self.client.put( f"banks/{bank_id}/accounts/{account_id}/{view_id}/transactions/{transaction_id}/metadata/narrative", data=data )
[docs] def update_transaction_where_tag(self, bank_id: str, account_id: str, view_id: str, transaction_id: str, data: Dict) -> Dict: """ Update a Transaction where Tag. Args: bank_id: Bank identifier account_id: Account identifier view_id: View identifier transaction_id: Transaction identifier data: Updated where tag data Returns: Dict containing updated where tag information """ return self.client.put( f"banks/{bank_id}/accounts/{account_id}/{view_id}/transactions/{transaction_id}/metadata/where", data=data )