Transition ticket prep from old requests-based GET/POST system to the new httpx one
This commit is contained in:
parent
83857a0dcd
commit
c4802d3c7d
11 changed files with 119 additions and 72 deletions
|
|
@ -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.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
|
from core.services.networking.make_url import make_url
|
||||||
|
|
@ -185,23 +185,30 @@ def check_if_paid(
|
||||||
url = make_url(which_endpoint)
|
url = make_url(which_endpoint)
|
||||||
|
|
||||||
# literally send:
|
# 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:
|
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}"
|
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}")
|
logger.error(f"[TICKET PayController] 2nd Post Request inside ticketpay controller had a {error_msg}")
|
||||||
return {"valid": False, "message": 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:
|
# return the payload with GUI/CLI to interpret results:
|
||||||
reply_dict = api_reply_object.data
|
reply_dict = api_reply_object.data
|
||||||
logger.debug(f"[TICKET PayController] We have a valid reply from the API inside ticketpay controller of {reply_dict}")
|
logger.debug(f"[TICKET PayController] We have a valid reply from the API inside ticketpay controller of {reply_dict}")
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,9 @@ if TYPE_CHECKING:
|
||||||
|
|
||||||
from core.Constants import Constants
|
from core.Constants import Constants
|
||||||
from core.observers.BaseObserver import BaseObserver
|
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.ApiResponseModel import ApiResponse, ErrorType
|
||||||
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
|
||||||
|
|
||||||
|
|
@ -32,23 +34,34 @@ def sync_ticket_prices(
|
||||||
|
|
||||||
url = f"{base_url}/sync"
|
url = f"{base_url}/sync"
|
||||||
try:
|
try:
|
||||||
api_result = get_data_from_api(url, None, connection_observer)
|
# api_result = get_data_from_api(url, None, connection_observer)
|
||||||
|
api_result = connect.single_endpoint(
|
||||||
if not api_result.valid:
|
method="get",
|
||||||
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,
|
url=url,
|
||||||
payload=None,
|
observer=connection_observer,
|
||||||
connection_observer=connection_observer,
|
payload=None
|
||||||
client_observer=None
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# 2nd try:
|
# 2nd try:
|
||||||
if not api_result.valid:
|
if not api_result.valid:
|
||||||
|
logger.error(f"Invalid API call result: {api_result.error_type}")
|
||||||
return {"valid": False, "error_code": "sync_failed"}
|
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}
|
return {"valid": True, "data": api_result.data}
|
||||||
|
|
||||||
except:
|
except:
|
||||||
|
|
|
||||||
|
|
@ -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.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.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.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.httpx import connect
|
||||||
from core.services.networking.api_requests.ApiResponseModel import ApiResponse, ErrorType
|
from core.services.networking.api_requests.ApiResponseModel import ApiResponse, ErrorType
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,8 @@ if TYPE_CHECKING:
|
||||||
from essentials.observers.ConnectionObserver import ConnectionObserver
|
from essentials.observers.ConnectionObserver import ConnectionObserver
|
||||||
# services
|
# services
|
||||||
from core.services.networking.make_url import make_url
|
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
|
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(
|
def get_plan_data(
|
||||||
temp_billing_code: str, connection_observer: ConnectionObserver
|
temp_billing_code: str, connection_observer: ConnectionObserver
|
||||||
) -> dict | ApiResponse:
|
) -> dict | ApiResponse:
|
||||||
|
|
||||||
|
# prep:
|
||||||
which_endpoint = "/plan"
|
which_endpoint = "/plan"
|
||||||
url = make_url(which_endpoint)
|
url = make_url(which_endpoint)
|
||||||
payload = {"temp_billing_code": temp_billing_code}
|
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
|
||||||
|
)
|
||||||
|
|
|
||||||
|
|
@ -74,6 +74,10 @@ def single_endpoint(method: str, url: str, observer: ConnectionObserver, payload
|
||||||
########################################################
|
########################################################
|
||||||
# FROM THIS POINT ON, WE HAVE PROBLEMS
|
# 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:
|
if connection_type == ConnectionChoice.SYSTEM:
|
||||||
# We have no solutions for clearweb that weren't tried already.
|
# We have no solutions for clearweb that weren't tried already.
|
||||||
# But may add more in the future
|
# But may add more in the future
|
||||||
|
|
@ -101,7 +105,7 @@ def single_endpoint(method: str, url: str, observer: ConnectionObserver, payload
|
||||||
payload=payload
|
payload=payload
|
||||||
)
|
)
|
||||||
|
|
||||||
# nothing we can do here
|
# nothing we can do here, so
|
||||||
else:
|
else:
|
||||||
return initial_result
|
return initial_result
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,6 @@ if TYPE_CHECKING:
|
||||||
from core.models.invoice.TicketInvoice import TicketInvoice
|
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.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.ApiResponseModel import ApiResponse, ErrorType
|
||||||
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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@ if TYPE_CHECKING:
|
||||||
from typing import Any
|
from typing import Any
|
||||||
# services
|
# services
|
||||||
from core.services.networking.make_url import make_url
|
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.httpx import connect
|
||||||
from core.services.networking.api_requests.ApiResponseModel import ApiResponse, ErrorType
|
from core.services.networking.api_requests.ApiResponseModel import ApiResponse, ErrorType
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,8 @@ if TYPE_CHECKING:
|
||||||
from essentials.observers.ConnectionObserver import ConnectionObserver
|
from essentials.observers.ConnectionObserver import ConnectionObserver
|
||||||
from core.observers.TicketObserver import TicketObserver
|
from core.observers.TicketObserver import TicketObserver
|
||||||
# services
|
# 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.ApiResponseModel import ApiResponse, ErrorType
|
||||||
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
|
||||||
|
|
||||||
|
|
@ -47,25 +48,33 @@ def send_blind_commitments(
|
||||||
# send it:
|
# send it:
|
||||||
which_endpoint = "sign"
|
which_endpoint = "sign"
|
||||||
url = make_url(which_endpoint)
|
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(
|
||||||
if not api_reply_object.valid:
|
method="post",
|
||||||
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,
|
url=url,
|
||||||
payload=payload,
|
observer=connection_observer,
|
||||||
connection_observer=connection_observer,
|
payload=payload
|
||||||
client_observer=None
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# # did API call work?
|
||||||
if not api_reply_object.valid:
|
if not api_reply_object.valid:
|
||||||
logger.error(f"[SEND BLIND COMMITMENTS] Second Post request failed. {api_reply_object.message}")
|
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)
|
ticket_observer.notify("error", subject=api_reply_object.message)
|
||||||
return None
|
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:
|
# assuming it worked, extract the data:
|
||||||
reply = api_reply_object.data
|
reply = api_reply_object.data
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
# API
|
# 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.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
|
# Database
|
||||||
from core.models.DatabaseOperation import DatabaseOperation, DBErrorType
|
from core.models.DatabaseOperation import DatabaseOperation, DBErrorType
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,6 @@ from core.services.networking.httpx import connect
|
||||||
|
|
||||||
from core.services.sync.compare_tables import compare_tables
|
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.httpx import connect
|
||||||
from core.services.networking.api_requests.ApiResponseModel import ApiResponse, ErrorType
|
from core.services.networking.api_requests.ApiResponseModel import ApiResponse, ErrorType
|
||||||
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
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,8 @@ if TYPE_CHECKING:
|
||||||
from essentials.observers.ConnectionObserver import ConnectionObserver
|
from essentials.observers.ConnectionObserver import ConnectionObserver
|
||||||
|
|
||||||
# services & helpers
|
# 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.ApiResponseModel import ApiResponse, ErrorType
|
||||||
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
|
||||||
|
|
||||||
|
|
@ -50,20 +51,27 @@ def send_unblinded_ticket_to_server(
|
||||||
# send it:
|
# send it:
|
||||||
which_endpoint = "validate"
|
which_endpoint = "validate"
|
||||||
url = make_url(which_endpoint)
|
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)
|
||||||
|
|
||||||
# This is if the API failed, not if it's not a valid ticket:
|
return connect.single_endpoint(
|
||||||
if not api_reply_object.valid:
|
method="post",
|
||||||
api_reply_object = solve_api_problems(
|
|
||||||
api_reply_object=api_reply_object,
|
|
||||||
get_or_post="post",
|
|
||||||
url=url,
|
url=url,
|
||||||
payload=payload,
|
observer=connection_observer,
|
||||||
connection_observer=connection_observer,
|
payload=payload
|
||||||
client_observer=None
|
|
||||||
)
|
)
|
||||||
|
|
||||||
return api_reply_object
|
# 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
|
||||||
|
# )
|
||||||
|
|
||||||
|
# return api_reply_object
|
||||||
|
|
||||||
except Exception as e:
|
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..."
|
human_readable_error_msg = f"The send_unblinded_ticket_to_server function's try-except block failed for ticket {which_ticket}. Returning False..."
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue