Skip to content

Commit 966db98

Browse files
committed
validate IntersectClientMessageParams in Service earlier
Signed-off-by: Lance Drane <[email protected]>
1 parent 1c5ee97 commit 966db98

File tree

1 file changed

+6
-12
lines changed

1 file changed

+6
-12
lines changed

src/intersect_sdk/service.py

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ class IntersectService(IntersectEventObserver):
9191
- shutdown()
9292
- add_shutdown_messages()
9393
- is_connected()
94+
- considered_unrecoverable()
9495
- forbid_keys()
9596
- allow_keys()
9697
- allow_all_functions()
@@ -218,13 +219,13 @@ def __init__(
218219
self._external_request_ctr = 0
219220

220221
self._startup_messages: list[
221-
tuple[IntersectClientMessageParams, RESPONSE_CALLBACK_TYPE]
222+
tuple[IntersectClientMessageParams, RESPONSE_CALLBACK_TYPE | None]
222223
] = []
223224
self._resend_startup_messages = True
224225
self._sent_startup_messages = False
225226

226227
self._shutdown_messages: list[
227-
tuple[IntersectClientMessageParams, RESPONSE_CALLBACK_TYPE]
228+
tuple[IntersectClientMessageParams, RESPONSE_CALLBACK_TYPE | None]
228229
] = []
229230

230231
self._data_plane_manager = DataPlaneManager(self._hierarchy, config.data_stores)
@@ -443,7 +444,7 @@ def get_blocked_keys(self) -> set[str]:
443444
return self._function_keys.copy()
444445

445446
def add_startup_messages(
446-
self, messages: list[tuple[IntersectClientMessageParams, RESPONSE_CALLBACK_TYPE]]
447+
self, messages: list[tuple[IntersectClientMessageParams, RESPONSE_CALLBACK_TYPE | None]]
447448
) -> None:
448449
"""Add request messages to send out to various microservices when this service starts.
449450
@@ -454,7 +455,7 @@ def add_startup_messages(
454455
self._startup_messages.extend(messages)
455456

456457
def add_shutdown_messages(
457-
self, messages: list[tuple[IntersectClientMessageParams, RESPONSE_CALLBACK_TYPE]]
458+
self, messages: list[tuple[IntersectClientMessageParams, RESPONSE_CALLBACK_TYPE | None]]
458459
) -> None:
459460
"""Add request messages to send out to various microservices on shutdown.
460461
@@ -519,8 +520,6 @@ def _process_external_requests(self) -> None:
519520
self._external_requests_lock.release_lock()
520521

521522
def _process_external_request(self, extreq: IntersectService._ExternalRequest) -> None:
522-
if extreq.request is None:
523-
return
524523
response = None
525524
cleanup_req = False
526525

@@ -707,12 +706,7 @@ def _handle_client_message(self, message: UserspaceMessage) -> None:
707706

708707
def _send_client_message(self, request_id: UUID, params: IntersectClientMessageParams) -> bool:
709708
"""Send a userspace message."""
710-
# ONE: VALIDATE AND SERIALIZE FUNCTION RESULTS
711-
try:
712-
params = IntersectClientMessageParams.model_validate(params)
713-
except ValidationError as e:
714-
logger.error(f'Invalid message parameters:\n{e}')
715-
return False
709+
# "params" should already be validated at this stage.
716710
request = GENERIC_MESSAGE_SERIALIZER.dump_json(params.payload, warnings=False)
717711

718712
# TWO: SEND DATA TO APPROPRIATE DATA STORE

0 commit comments

Comments
 (0)