diff --git a/core/controllers/tickets/TicketPayController.py b/core/controllers/tickets/TicketPayController.py index d1088ed..4e2c9d0 100644 --- a/core/controllers/tickets/TicketPayController.py +++ b/core/controllers/tickets/TicketPayController.py @@ -16,8 +16,8 @@ from core.errors.exceptions import ServerSideError, NetworkingError from core.services.prepare_tickets.ticket_tracker import does_ticket_tracker_exist -# from core.services.networking.send_data_to_server import send_data_to_server -from core.services.networking.api_requests.step1_get_or_post import send_data_to_server +# from core.services.networking.api_requests.step1_get_or_post import send_data_to_server +from core.services.networking.httpx import connect from core.services.networking.make_url import make_url @@ -185,22 +185,29 @@ def check_if_paid( url = make_url(which_endpoint) # literally send: - api_reply_object = send_data_to_server(payload, url, connection_observer) + # api_reply_object = send_data_to_server(payload, url, connection_observer) + + api_reply_object = connect.single_endpoint( + method="post", + url=url, + observer=connection_observer, + payload=payload + ) if not api_reply_object.valid: - api_reply_object = solve_api_problems( - api_reply_object=api_reply_object, - get_or_post="post", - url=url, - payload=payload, - connection_observer=connection_observer, - client_observer=None - ) - if not api_reply_object.valid: - # 2nd try, return the error of why we have no payload: - error_msg = f"Connection/API Error: {api_reply_object.message}" - logger.error(f"[TICKET PayController] 2nd Post Request inside ticketpay controller had a {error_msg}") - return {"valid": False, "message": error_msg} + error_msg = f"Connection/API Error: {api_reply_object.message}" + logger.error(f"[TICKET PayController] 2nd Post Request inside ticketpay controller had a {error_msg}") + return {"valid": False, "message": error_msg} + + # if not api_reply_object.valid: + # api_reply_object = solve_api_problems( + # api_reply_object=api_reply_object, + # get_or_post="post", + # url=url, + # payload=payload, + # connection_observer=connection_observer, + # client_observer=None + # ) # return the payload with GUI/CLI to interpret results: reply_dict = api_reply_object.data diff --git a/core/controllers/tickets/TicketSyncController.py b/core/controllers/tickets/TicketSyncController.py index 43879c1..9188441 100644 --- a/core/controllers/tickets/TicketSyncController.py +++ b/core/controllers/tickets/TicketSyncController.py @@ -7,7 +7,9 @@ if TYPE_CHECKING: from core.Constants import Constants from core.observers.BaseObserver import BaseObserver -from core.services.networking.api_requests.step1_get_or_post import get_data_from_api +# from core.services.networking.api_requests.step1_get_or_post import get_data_from_api + +from core.services.networking.httpx import connect from core.services.networking.api_requests.ApiResponseModel import ApiResponse, ErrorType from core.services.networking.api_requests.step5_solve_api_problems import solve_api_problems @@ -32,22 +34,33 @@ def sync_ticket_prices( url = f"{base_url}/sync" try: - api_result = get_data_from_api(url, None, connection_observer) - - if not api_result.valid: - error_msg = api_result.message - logger.error(f"[TICKET SYNC Controller] There's an issue with the sync of endpoint {url} the API Reply: {error_msg}") - api_result = solve_api_problems( - api_reply_object=api_result, - get_or_post="get", + # api_result = get_data_from_api(url, None, connection_observer) + api_result = connect.single_endpoint( + method="get", url=url, - payload=None, - connection_observer=connection_observer, - client_observer=None - ) - # 2nd try: - if not api_result.valid: - return {"valid": False, "error_code": "sync_failed"} + observer=connection_observer, + payload=None + ) + + # 2nd try: + if not api_result.valid: + logger.error(f"Invalid API call result: {api_result.error_type}") + return {"valid": False, "error_code": "sync_failed"} + + # if not api_result.valid: + # error_msg = api_result.message + # logger.error(f"[TICKET SYNC Controller] There's an issue with the sync of endpoint {url} the API Reply: {error_msg}") + # api_result = solve_api_problems( + # api_reply_object=api_result, + # get_or_post="get", + # url=url, + # payload=None, + # connection_observer=connection_observer, + # client_observer=None + # ) + # # 2nd try: + # if not api_result.valid: + # return {"valid": False, "error_code": "sync_failed"} return {"valid": True, "data": api_result.data} diff --git a/core/services/failed_verification/is_the_key_to_blame.py b/core/services/failed_verification/is_the_key_to_blame.py index 58639b5..068e067 100644 --- a/core/services/failed_verification/is_the_key_to_blame.py +++ b/core/services/failed_verification/is_the_key_to_blame.py @@ -11,7 +11,6 @@ from core.services.prepare_tickets.get_public_key_by_config import get_public_ke from core.services.prepare_tickets.get_pub_key import key_is_in_valid_format, get_pub_key from core.services.failed_verification.test_if_new_key_works import test_if_new_key_works from core.services.networking.make_url import make_url -from core.services.networking.api_requests.step1_get_or_post import get_data_from_api from core.services.networking.httpx import connect from core.services.networking.api_requests.ApiResponseModel import ApiResponse, ErrorType diff --git a/core/services/helpers/get_plan_data.py b/core/services/helpers/get_plan_data.py index 88e9be3..2b7e960 100644 --- a/core/services/helpers/get_plan_data.py +++ b/core/services/helpers/get_plan_data.py @@ -5,8 +5,8 @@ if TYPE_CHECKING: from essentials.observers.ConnectionObserver import ConnectionObserver # services from core.services.networking.make_url import make_url -# from core.services.networking.send_data_to_server import send_data_to_server -from core.services.networking.api_requests.step1_get_or_post import send_data_to_server +# from core.services.networking.api_requests.step1_get_or_post import send_data_to_server +from core.services.networking.httpx import connect from core.services.networking.api_requests.ApiResponseModel import ApiResponse, ErrorType @@ -14,8 +14,19 @@ from core.services.networking.api_requests.ApiResponseModel import ApiResponse, def get_plan_data( temp_billing_code: str, connection_observer: ConnectionObserver ) -> dict | ApiResponse: + + # prep: which_endpoint = "/plan" url = make_url(which_endpoint) payload = {"temp_billing_code": temp_billing_code} - reply = send_data_to_server(payload, url, connection_observer) - return reply + + # legacy: + # reply = send_data_to_server(payload, url, connection_observer) + + # send: + return connect.single_endpoint( + method="post", + url=url, + observer=connection_observer, + payload=payload + ) diff --git a/core/services/networking/httpx/connect.py b/core/services/networking/httpx/connect.py index 47f17c8..a1d4c72 100644 --- a/core/services/networking/httpx/connect.py +++ b/core/services/networking/httpx/connect.py @@ -74,6 +74,10 @@ def single_endpoint(method: str, url: str, observer: ConnectionObserver, payload ######################################################## # FROM THIS POINT ON, WE HAVE PROBLEMS ######################################################## + + # Since it did NOT work, wipe the client, + httpx_client.close_http_session() + if connection_type == ConnectionChoice.SYSTEM: # We have no solutions for clearweb that weren't tried already. # But may add more in the future @@ -101,7 +105,7 @@ def single_endpoint(method: str, url: str, observer: ConnectionObserver, payload payload=payload ) - # nothing we can do here + # nothing we can do here, so else: return initial_result diff --git a/core/services/payment_phase/save_and_send_intitial_billing.py b/core/services/payment_phase/save_and_send_intitial_billing.py index 358802a..b3ebb0d 100644 --- a/core/services/payment_phase/save_and_send_intitial_billing.py +++ b/core/services/payment_phase/save_and_send_intitial_billing.py @@ -7,7 +7,6 @@ if TYPE_CHECKING: from core.models.invoice.TicketInvoice import TicketInvoice from core.services.networking.api_requests.step1_get_or_post import send_data_to_server -# from core.services.networking.send_data_to_server import send_data_to_server from core.services.networking.api_requests.ApiResponseModel import ApiResponse, ErrorType from core.services.networking.api_requests.step5_solve_api_problems import solve_api_problems diff --git a/core/services/prepare_tickets/get_pub_key.py b/core/services/prepare_tickets/get_pub_key.py index c009ccc..6d8b467 100644 --- a/core/services/prepare_tickets/get_pub_key.py +++ b/core/services/prepare_tickets/get_pub_key.py @@ -6,7 +6,6 @@ if TYPE_CHECKING: from typing import Any # services from core.services.networking.make_url import make_url -from core.services.networking.api_requests.step1_get_or_post import get_data_from_api from core.services.networking.httpx import connect from core.services.networking.api_requests.ApiResponseModel import ApiResponse, ErrorType diff --git a/core/services/prepare_tickets/send_blind_commitments.py b/core/services/prepare_tickets/send_blind_commitments.py index 30e9e3a..3e0af80 100644 --- a/core/services/prepare_tickets/send_blind_commitments.py +++ b/core/services/prepare_tickets/send_blind_commitments.py @@ -5,7 +5,8 @@ if TYPE_CHECKING: from essentials.observers.ConnectionObserver import ConnectionObserver from core.observers.TicketObserver import TicketObserver # services -from core.services.networking.api_requests.step1_get_or_post import send_data_to_server +# from core.services.networking.api_requests.step1_get_or_post import send_data_to_server +from core.services.networking.httpx import connect from core.services.networking.api_requests.ApiResponseModel import ApiResponse, ErrorType from core.services.networking.api_requests.step5_solve_api_problems import solve_api_problems @@ -47,24 +48,32 @@ def send_blind_commitments( # send it: which_endpoint = "sign" url = make_url(which_endpoint) - api_reply_object = send_data_to_server(payload, url, connection_observer) + # api_reply_object = send_data_to_server(payload, url, connection_observer) - # did API call work? + api_reply_object = connect.single_endpoint( + method="post", + url=url, + observer=connection_observer, + payload=payload + ) + + # # did API call work? if not api_reply_object.valid: - final_error_msg = f"[SEND BLIND COMMITMENTS] First Post request failed {api_reply_object.message}" - logger.error(final_error_msg) - api_reply_object = solve_api_problems( - api_reply_object=api_reply_object, - get_or_post="post", - url=url, - payload=payload, - connection_observer=connection_observer, - client_observer=None - ) - if not api_reply_object.valid: - logger.error(f"[SEND BLIND COMMITMENTS] Second Post request failed. {api_reply_object.message}") - ticket_observer.notify("error", subject=api_reply_object.message) - return None + logger.error(f"[SEND BLIND COMMITMENTS] Second Post request failed. {api_reply_object.error_type} {api_reply_object.message}") + ticket_observer.notify("error", subject=api_reply_object.message) + return None + + # if not api_reply_object.valid: + # final_error_msg = f"[SEND BLIND COMMITMENTS] First Post request failed {api_reply_object.message}" + # logger.error(final_error_msg) + # api_reply_object = solve_api_problems( + # api_reply_object=api_reply_object, + # get_or_post="post", + # url=url, + # payload=payload, + # connection_observer=connection_observer, + # client_observer=None + # ) # assuming it worked, extract the data: reply = api_reply_object.data diff --git a/core/services/sync/insert_for_orm.py b/core/services/sync/insert_for_orm.py index 6e8eab1..4eaf5c6 100644 --- a/core/services/sync/insert_for_orm.py +++ b/core/services/sync/insert_for_orm.py @@ -1,7 +1,6 @@ # API -from core.services.networking.api_requests.step1_get_or_post import get_data_from_api from core.services.networking.api_requests.ApiResponseModel import ApiResponse -from core.services.networking.api_requests.step5_solve_api_problems import solve_api_problems +# from core.services.networking.api_requests.step5_solve_api_problems import solve_api_problems # Database from core.models.DatabaseOperation import DatabaseOperation, DBErrorType diff --git a/core/services/sync/sync_service.py b/core/services/sync/sync_service.py index 60665aa..6d07a45 100644 --- a/core/services/sync/sync_service.py +++ b/core/services/sync/sync_service.py @@ -5,7 +5,6 @@ from core.services.networking.httpx import connect from core.services.sync.compare_tables import compare_tables -# from core.services.networking.api_requests.step1_get_or_post import get_data_from_api from core.services.networking.httpx import connect from core.services.networking.api_requests.ApiResponseModel import ApiResponse, ErrorType from core.services.networking.api_requests.step5_solve_api_problems import solve_api_problems diff --git a/core/services/using_tickets/send_unblinded.py b/core/services/using_tickets/send_unblinded.py index 85e58a4..7ec0c0e 100644 --- a/core/services/using_tickets/send_unblinded.py +++ b/core/services/using_tickets/send_unblinded.py @@ -5,7 +5,8 @@ if TYPE_CHECKING: from essentials.observers.ConnectionObserver import ConnectionObserver # services & helpers -from core.services.networking.api_requests.step1_get_or_post import send_data_to_server +# from core.services.networking.api_requests.step1_get_or_post import send_data_to_server +from core.services.networking.httpx import connect from core.services.networking.api_requests.ApiResponseModel import ApiResponse, ErrorType from core.services.networking.api_requests.step5_solve_api_problems import solve_api_problems @@ -50,20 +51,27 @@ def send_unblinded_ticket_to_server( # send it: which_endpoint = "validate" url = make_url(which_endpoint) - api_reply_object = send_data_to_server(payload, url, connection_observer) + # api_reply_object = send_data_to_server(payload, url, connection_observer) + + return connect.single_endpoint( + method="post", + url=url, + observer=connection_observer, + payload=payload + ) # This is if the API failed, not if it's not a valid ticket: - if not api_reply_object.valid: - api_reply_object = solve_api_problems( - api_reply_object=api_reply_object, - get_or_post="post", - url=url, - payload=payload, - connection_observer=connection_observer, - client_observer=None - ) + # if not api_reply_object.valid: + # api_reply_object = solve_api_problems( + # api_reply_object=api_reply_object, + # get_or_post="post", + # url=url, + # payload=payload, + # connection_observer=connection_observer, + # client_observer=None + # ) - return api_reply_object + # return api_reply_object except Exception as e: human_readable_error_msg = f"The send_unblinded_ticket_to_server function's try-except block failed for ticket {which_ticket}. Returning False..."