diff --git a/README.md b/README.md index 938d5c5..3e2700c 100644 --- a/README.md +++ b/README.md @@ -304,9 +304,17 @@ is_valid = client.verify_webhook( ) ``` -### Get System Order Status -```python -status = client.get_system_order_status() +### Get System Definitions and Statuses +```python +order_statuses = client.get_system_order_statuses() +basket_item_types = client.get_system_basket_item_types() +error_codes = client.get_system_error_codes() +payment_term_statuses = client.get_system_payment_term_statuses() +product_types = client.get_system_product_types() +shortcut_types = client.get_system_shortcut_types() +transaction_payment_types = client.get_system_transaction_payment_types() +transaction_purposes = client.get_system_transaction_purposes() +transaction_statuses = client.get_system_transaction_statuses() ``` ## Subscription Management diff --git a/setup.py b/setup.py index 44a33a2..b4e3e97 100644 --- a/setup.py +++ b/setup.py @@ -8,7 +8,7 @@ setup( name="tapsilat-py", - version="2026.4.24.2", + version="2026.5.8.1", description="Client SDK for Tapsilat API", long_description=long_description, long_description_content_type="text/markdown", diff --git a/tapsilat_py/client.py b/tapsilat_py/client.py index ee4561c..7d02c83 100644 --- a/tapsilat_py/client.py +++ b/tapsilat_py/client.py @@ -141,6 +141,38 @@ def get_system_order_statuses(self) -> dict: endpoint = "/system/order-statuses" return self._make_request("GET", endpoint) + def get_system_basket_item_types(self) -> dict: + endpoint = "/system/basket-item-types" + return self._make_request("GET", endpoint) + + def get_system_error_codes(self) -> dict: + endpoint = "/system/error-codes" + return self._make_request("GET", endpoint) + + def get_system_payment_term_statuses(self) -> dict: + endpoint = "/system/payment-term-statuses" + return self._make_request("GET", endpoint) + + def get_system_product_types(self) -> dict: + endpoint = "/system/product-types" + return self._make_request("GET", endpoint) + + def get_system_shortcut_types(self) -> dict: + endpoint = "/system/shortcut-types" + return self._make_request("GET", endpoint) + + def get_system_transaction_payment_types(self) -> dict: + endpoint = "/system/transaction-payment-types" + return self._make_request("GET", endpoint) + + def get_system_transaction_purposes(self) -> dict: + endpoint = "/system/transaction-purposes" + return self._make_request("GET", endpoint) + + def get_system_transaction_statuses(self) -> dict: + endpoint = "/system/transaction-statuses" + return self._make_request("GET", endpoint) + def get_order(self, reference_id: str) -> OrderResponse: endpoint = f"/order/{reference_id}" response = self._make_request("GET", endpoint) diff --git a/tests/integration/integration_test.py b/tests/integration/integration_test.py index 0b8f2e1..97abf64 100644 --- a/tests/integration/integration_test.py +++ b/tests/integration/integration_test.py @@ -262,7 +262,11 @@ def test_scenario_11_order_management_operations(api_client): except APIException: pass - dummy_ref = "dummy_ref_123" + buyer = BuyerDTO(name="John", surname="Doe", email="test@example.com") + order = api_client.create_order( + OrderCreateDTO(amount=100.0, currency="TRY", locale="tr", buyer=buyer) + ) + dummy_ref = order.reference_id # get_order_by_conversation_id try: diff --git a/tests/unit/test_system_endpoints.py b/tests/unit/test_system_endpoints.py new file mode 100644 index 0000000..36a51b0 --- /dev/null +++ b/tests/unit/test_system_endpoints.py @@ -0,0 +1,64 @@ +import unittest +from unittest.mock import MagicMock, patch +from tapsilat_py.client import TapsilatAPI + +class TestSystemEndpoints(unittest.TestCase): + def setUp(self): + self.api = TapsilatAPI(api_key="test_key") + self.api._make_request = MagicMock() + + def test_get_system_basket_item_types(self): + expected_response = {"data": []} + self.api._make_request.return_value = expected_response + response = self.api.get_system_basket_item_types() + self.api._make_request.assert_called_once_with("GET", "/system/basket-item-types") + self.assertEqual(response, expected_response) + + def test_get_system_error_codes(self): + expected_response = {"data": []} + self.api._make_request.return_value = expected_response + response = self.api.get_system_error_codes() + self.api._make_request.assert_called_once_with("GET", "/system/error-codes") + self.assertEqual(response, expected_response) + + def test_get_system_payment_term_statuses(self): + expected_response = {"data": []} + self.api._make_request.return_value = expected_response + response = self.api.get_system_payment_term_statuses() + self.api._make_request.assert_called_once_with("GET", "/system/payment-term-statuses") + self.assertEqual(response, expected_response) + + def test_get_system_product_types(self): + expected_response = {"data": []} + self.api._make_request.return_value = expected_response + response = self.api.get_system_product_types() + self.api._make_request.assert_called_once_with("GET", "/system/product-types") + self.assertEqual(response, expected_response) + + def test_get_system_shortcut_types(self): + expected_response = {"data": []} + self.api._make_request.return_value = expected_response + response = self.api.get_system_shortcut_types() + self.api._make_request.assert_called_once_with("GET", "/system/shortcut-types") + self.assertEqual(response, expected_response) + + def test_get_system_transaction_payment_types(self): + expected_response = {"data": []} + self.api._make_request.return_value = expected_response + response = self.api.get_system_transaction_payment_types() + self.api._make_request.assert_called_once_with("GET", "/system/transaction-payment-types") + self.assertEqual(response, expected_response) + + def test_get_system_transaction_purposes(self): + expected_response = {"data": []} + self.api._make_request.return_value = expected_response + response = self.api.get_system_transaction_purposes() + self.api._make_request.assert_called_once_with("GET", "/system/transaction-purposes") + self.assertEqual(response, expected_response) + + def test_get_system_transaction_statuses(self): + expected_response = {"data": []} + self.api._make_request.return_value = expected_response + response = self.api.get_system_transaction_statuses() + self.api._make_request.assert_called_once_with("GET", "/system/transaction-statuses") + self.assertEqual(response, expected_response)