Skip to content

Commit 082f56f

Browse files
Update backend/adapter_processor_v2/views.py
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Signed-off-by: Gayathri <[email protected]>
1 parent 6985184 commit 082f56f

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

backend/adapter_processor_v2/views.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -283,24 +283,32 @@ def create(self, request: Any) -> Response:
283283
adapter_metadata_b = serializer.validated_data.get(AdapterKeys.ADAPTER_METADATA_B)
284284
decrypted_metadata = self._decrypt_and_validate_metadata(adapter_metadata_b)
285285

286-
# Validate URLs for security
286+
# Validate URLs for security (pre-mutation)
287287
self._validate_adapter_urls(adapter_id, decrypted_metadata)
288288

289289
try:
290290
adapter_type = serializer.validated_data.get(AdapterKeys.ADAPTER_TYPE)
291291

292292
# Update metadata if using platform key
293293
if use_platform_unstract_key:
294-
self._update_metadata_for_platform_key(
294+
updated_b = self._update_metadata_for_platform_key(
295295
serializer.validated_data, adapter_type
296296
)
297+
if updated_b is not None:
298+
# Re-validate post-mutation metadata before save
299+
final_md = self._decrypt_and_validate_metadata(updated_b)
300+
self._validate_adapter_urls(adapter_id, final_md)
297301

298302
# Save the adapter instance
299303
instance = serializer.save()
300304

301305
# Set as default adapter if needed
302306
self._set_default_adapter_if_needed(instance, adapter_type, request.user.id)
303307

308+
except IntegrityError as e:
309+
raise DuplicateAdapterNameError(
310+
name=serializer.validated_data.get(AdapterKeys.ADAPTER_NAME)
311+
) from e
304312
except IntegrityError:
305313
raise DuplicateAdapterNameError(
306314
name=serializer.validated_data.get(AdapterKeys.ADAPTER_NAME)

0 commit comments

Comments
 (0)