diff --git a/pyright.pyproject.toml b/pyright.pyproject.toml index 94b05b008d..5bae5c2f40 100644 --- a/pyright.pyproject.toml +++ b/pyright.pyproject.toml @@ -40,6 +40,7 @@ include = [ # Registrations "src/openforms/registrations/tasks.py", "src/openforms/registrations/contrib/email/", + "src/openforms/registrations/contrib/json_dump/", "src/openforms/registrations/contrib/stuf_zds/options.py", "src/openforms/registrations/contrib/stuf_zds/plugin.py", "src/openforms/registrations/contrib/stuf_zds/typing.py", diff --git a/src/openforms/js/components/admin/form_design/registrations/json_dump/fields/Variables.js b/src/openforms/js/components/admin/form_design/registrations/json_dump/fields/Variables.js index 2d934a3ced..48a04b570f 100644 --- a/src/openforms/js/components/admin/form_design/registrations/json_dump/fields/Variables.js +++ b/src/openforms/js/components/admin/form_design/registrations/json_dump/fields/Variables.js @@ -32,8 +32,8 @@ const Variables = () => { {...fieldProps} isMulti required - closeMenuOnSelect={false} - includeStaticVariables={true} + closeMenuOnSelect + includeStaticVariables /> diff --git a/src/openforms/registrations/contrib/json_dump/plugin.py b/src/openforms/registrations/contrib/json_dump/plugin.py index 1117cf13a3..63a8b4bb2f 100644 --- a/src/openforms/registrations/contrib/json_dump/plugin.py +++ b/src/openforms/registrations/contrib/json_dump/plugin.py @@ -1,5 +1,6 @@ import base64 import json +from typing import TypedDict from django.core.exceptions import SuspiciousOperation from django.core.serializers.json import DjangoJSONEncoder @@ -21,6 +22,10 @@ from .config import JSONDumpOptions, JSONDumpOptionsSerializer +class JSONDumpResult(TypedDict): + api_response: JSONObject + + @register("json_dump") class JSONDumpRegistration(BasePlugin): verbose_name = _("JSON dump registration") @@ -28,7 +33,7 @@ class JSONDumpRegistration(BasePlugin): def register_submission( self, submission: Submission, options: JSONDumpOptions - ) -> dict: + ) -> JSONDumpResult: state = submission.load_submission_value_variables_state() all_values: JSONObject = { @@ -62,17 +67,14 @@ def register_submission( # Send to the service data = json.dumps({"values": values, "schema": schema}, cls=DjangoJSONEncoder) service = options["service"] - submission.registration_result = result = {} with build_client(service) as client: if ".." in (path := options["path"]): raise SuspiciousOperation("Possible path traversal detected") - res = client.post(path, json=data) - res.raise_for_status() - - result["api_response"] = res.json() + result = client.post(path, json=data) + result.raise_for_status() - return result + return {"api_response": result.json()} def check_config(self) -> None: # Config checks are not really relevant for this plugin right now