From eb0a28f293ae6c077d0ca3a089e6e461e280771c Mon Sep 17 00:00:00 2001 From: Brandon Rodriguez <brodriguez8774@gmail.com> Date: Tue, 30 Jul 2024 00:00:16 -0400 Subject: [PATCH] Update api_send form to handle header data better and give more options --- django_rest/test_app/forms.py | 4 ++-- .../test_app/templates/test_app/api_send.html | 6 +++--- django_rest/test_app/views.py | 15 ++++++++++++--- django_v2/test_app/forms.py | 4 ++-- .../test_app/templates/test_app/api_send.html | 6 +++--- django_v2/test_app/views.py | 15 ++++++++++++--- django_v3/test_app/forms.py | 4 ++-- .../test_app/templates/test_app/api_send.html | 6 +++--- django_v3/test_app/views.py | 15 ++++++++++++--- django_v4/test_app/forms.py | 4 ++-- .../test_app/templates/test_app/api_send.html | 6 +++--- django_v4/test_app/views.py | 15 ++++++++++++--- django_v5/test_app/forms.py | 4 ++-- .../test_app/templates/test_app/api_send.html | 6 +++--- django_v5/test_app/views.py | 14 +++++++++++--- 15 files changed, 84 insertions(+), 40 deletions(-) diff --git a/django_rest/test_app/forms.py b/django_rest/test_app/forms.py index e82dbfe..f9eef05 100644 --- a/django_rest/test_app/forms.py +++ b/django_rest/test_app/forms.py @@ -19,10 +19,10 @@ class ApiSendForm(forms.Form): widget=forms.Textarea(attrs={'rows': '6'}), help_text='Optional URL get param to append to URL.', ) - header_token = forms.CharField( + header_params = forms.CharField( required=False, widget=forms.Textarea(attrs={'rows': '6'}), - help_text='Optional token to put into request header, such as required for API authentication.' + help_text='Optional dict of data to put into request header, such as values required for API authentication.' ) payload = forms.CharField( required=False, diff --git a/django_rest/test_app/templates/test_app/api_send.html b/django_rest/test_app/templates/test_app/api_send.html index f0e098e..21366f7 100644 --- a/django_rest/test_app/templates/test_app/api_send.html +++ b/django_rest/test_app/templates/test_app/api_send.html @@ -305,10 +305,10 @@ <div class="field-group"> <div class="label"> <p> - Header Token: + Header Params: </p> </div> - <pre>MyExampleHeaderAuthToken-112233445566778899ABABCDCD</pre> + <pre>{"Testing": "Test"}</pre> </div> <div class="field-group"> <div class="label"> @@ -331,7 +331,7 @@ header: { "Accept": "application/json", - "token": "MyExampleHeaderAuthToken-112233445566778899ABABCDCD" + "Testing": "Test" } data: { diff --git a/django_rest/test_app/views.py b/django_rest/test_app/views.py index 8533ff4..965a322 100644 --- a/django_rest/test_app/views.py +++ b/django_rest/test_app/views.py @@ -359,7 +359,7 @@ def api_send(request): url = str(form.cleaned_data['url']).strip() get_params = str(form.cleaned_data.get('get_params', '')).strip() - header_token = str(form.cleaned_data.get('header_token', '')).strip() + header_params = str(form.cleaned_data.get('header_params', '')).strip() payload = str(form.cleaned_data.get('payload', '{}')).strip() if len(payload) > 0: try: @@ -386,8 +386,17 @@ def api_send(request): # Determine header values. headers = {'Accept': 'application/json'} - if header_token: - headers['token'] = header_token + if len(header_params) > 0: + try: + header_params = json.loads(header_params) + headers.update(header_params) + except json.decoder.JSONDecodeError: + has_error = True + payload = {} + form.add_error( + 'header_params', + 'Unrecognized/invalid JSON syntax. Please double check syntax and try again.', + ) # Determine data values. if payload: diff --git a/django_v2/test_app/forms.py b/django_v2/test_app/forms.py index 5af5038..f5d8861 100644 --- a/django_v2/test_app/forms.py +++ b/django_v2/test_app/forms.py @@ -19,10 +19,10 @@ class ApiSendForm(forms.Form): widget=forms.Textarea(attrs={'rows': '6'}), help_text='Optional URL get param to append to URL.', ) - header_token = forms.CharField( + header_params = forms.CharField( required=False, widget=forms.Textarea(attrs={'rows': '6'}), - help_text='Optional token to put into request header, such as required for API authentication.' + help_text='Optional dict of data to put into request header, such as values required for API authentication.' ) payload = forms.CharField( required=False, diff --git a/django_v2/test_app/templates/test_app/api_send.html b/django_v2/test_app/templates/test_app/api_send.html index 25b1811..43ef7aa 100644 --- a/django_v2/test_app/templates/test_app/api_send.html +++ b/django_v2/test_app/templates/test_app/api_send.html @@ -305,10 +305,10 @@ <div class="field-group"> <div class="label"> <p> - Header Token: + Header Params: </p> </div> - <pre>MyExampleHeaderAuthToken-112233445566778899ABABCDCD</pre> + <pre>{"Testing": "Test"}</pre> </div> <div class="field-group"> <div class="label"> @@ -331,7 +331,7 @@ header: { "Accept": "application/json", - "token": "MyExampleHeaderAuthToken-112233445566778899ABABCDCD" + "Testing": "Test" } data: { diff --git a/django_v2/test_app/views.py b/django_v2/test_app/views.py index 34432df..3168a94 100644 --- a/django_v2/test_app/views.py +++ b/django_v2/test_app/views.py @@ -352,7 +352,7 @@ def api_send(request): url = str(form.cleaned_data['url']).strip() get_params = str(form.cleaned_data.get('get_params', '')).strip() - header_token = str(form.cleaned_data.get('header_token', '')).strip() + header_params = str(form.cleaned_data.get('header_params', '')).strip() payload = str(form.cleaned_data.get('payload', '{}')).strip() if len(payload) > 0: try: @@ -379,8 +379,17 @@ def api_send(request): # Determine header values. headers = {'Accept': 'application/json'} - if header_token: - headers['token'] = header_token + if len(header_params) > 0: + try: + header_params = json.loads(header_params) + headers.update(header_params) + except json.decoder.JSONDecodeError: + has_error = True + payload = {} + form.add_error( + 'header_params', + 'Unrecognized/invalid JSON syntax. Please double check syntax and try again.', + ) # Determine data values. if payload: diff --git a/django_v3/test_app/forms.py b/django_v3/test_app/forms.py index 85e2b4e..55dba43 100644 --- a/django_v3/test_app/forms.py +++ b/django_v3/test_app/forms.py @@ -19,10 +19,10 @@ class ApiSendForm(forms.Form): widget=forms.Textarea(attrs={'rows': '6'}), help_text='Optional URL get param to append to URL.', ) - header_token = forms.CharField( + header_params = forms.CharField( required=False, widget=forms.Textarea(attrs={'rows': '6'}), - help_text='Optional token to put into request header, such as required for API authentication.' + help_text='Optional dict of data to put into request header, such as values required for API authentication.' ) payload = forms.CharField( required=False, diff --git a/django_v3/test_app/templates/test_app/api_send.html b/django_v3/test_app/templates/test_app/api_send.html index 48d1b13..6e4c3cd 100644 --- a/django_v3/test_app/templates/test_app/api_send.html +++ b/django_v3/test_app/templates/test_app/api_send.html @@ -305,10 +305,10 @@ <div class="field-group"> <div class="label"> <p> - Header Token: + Header Params: </p> </div> - <pre>MyExampleHeaderAuthToken-112233445566778899ABABCDCD</pre> + <pre>{"Testing": "Test"}</pre> </div> <div class="field-group"> <div class="label"> @@ -331,7 +331,7 @@ header: { "Accept": "application/json", - "token": "MyExampleHeaderAuthToken-112233445566778899ABABCDCD" + "Testing": "Test" } data: { diff --git a/django_v3/test_app/views.py b/django_v3/test_app/views.py index fecc304..adb94d4 100644 --- a/django_v3/test_app/views.py +++ b/django_v3/test_app/views.py @@ -352,7 +352,7 @@ def api_send(request): url = str(form.cleaned_data['url']).strip() get_params = str(form.cleaned_data.get('get_params', '')).strip() - header_token = str(form.cleaned_data.get('header_token', '')).strip() + header_params = str(form.cleaned_data.get('header_params', '')).strip() payload = str(form.cleaned_data.get('payload', '{}')).strip() if len(payload) > 0: try: @@ -379,8 +379,17 @@ def api_send(request): # Determine header values. headers = {'Accept': 'application/json'} - if header_token: - headers['token'] = header_token + if len(header_params) > 0: + try: + header_params = json.loads(header_params) + headers.update(header_params) + except json.decoder.JSONDecodeError: + has_error = True + payload = {} + form.add_error( + 'header_params', + 'Unrecognized/invalid JSON syntax. Please double check syntax and try again.', + ) # Determine data values. if payload: diff --git a/django_v4/test_app/forms.py b/django_v4/test_app/forms.py index 85e2b4e..55dba43 100644 --- a/django_v4/test_app/forms.py +++ b/django_v4/test_app/forms.py @@ -19,10 +19,10 @@ class ApiSendForm(forms.Form): widget=forms.Textarea(attrs={'rows': '6'}), help_text='Optional URL get param to append to URL.', ) - header_token = forms.CharField( + header_params = forms.CharField( required=False, widget=forms.Textarea(attrs={'rows': '6'}), - help_text='Optional token to put into request header, such as required for API authentication.' + help_text='Optional dict of data to put into request header, such as values required for API authentication.' ) payload = forms.CharField( required=False, diff --git a/django_v4/test_app/templates/test_app/api_send.html b/django_v4/test_app/templates/test_app/api_send.html index 48d1b13..6e4c3cd 100644 --- a/django_v4/test_app/templates/test_app/api_send.html +++ b/django_v4/test_app/templates/test_app/api_send.html @@ -305,10 +305,10 @@ <div class="field-group"> <div class="label"> <p> - Header Token: + Header Params: </p> </div> - <pre>MyExampleHeaderAuthToken-112233445566778899ABABCDCD</pre> + <pre>{"Testing": "Test"}</pre> </div> <div class="field-group"> <div class="label"> @@ -331,7 +331,7 @@ header: { "Accept": "application/json", - "token": "MyExampleHeaderAuthToken-112233445566778899ABABCDCD" + "Testing": "Test" } data: { diff --git a/django_v4/test_app/views.py b/django_v4/test_app/views.py index 39b125f..81920d0 100644 --- a/django_v4/test_app/views.py +++ b/django_v4/test_app/views.py @@ -352,7 +352,7 @@ def api_send(request): url = str(form.cleaned_data['url']).strip() get_params = str(form.cleaned_data.get('get_params', '')).strip() - header_token = str(form.cleaned_data.get('header_token', '')).strip() + header_params = str(form.cleaned_data.get('header_params', '')).strip() payload = str(form.cleaned_data.get('payload', '{}')).strip() if len(payload) > 0: try: @@ -379,8 +379,17 @@ def api_send(request): # Determine header values. headers = {'Accept': 'application/json'} - if header_token: - headers['token'] = header_token + if len(header_params) > 0: + try: + header_params = json.loads(header_params) + headers.update(header_params) + except json.decoder.JSONDecodeError: + has_error = True + payload = {} + form.add_error( + 'header_params', + 'Unrecognized/invalid JSON syntax. Please double check syntax and try again.', + ) # Determine data values. if payload: diff --git a/django_v5/test_app/forms.py b/django_v5/test_app/forms.py index fa7b361..54d8e10 100644 --- a/django_v5/test_app/forms.py +++ b/django_v5/test_app/forms.py @@ -19,10 +19,10 @@ class ApiSendForm(forms.Form): widget=forms.Textarea(attrs={'rows': '6'}), help_text='Optional URL get param to append to URL.', ) - header_token = forms.CharField( + header_params = forms.CharField( required=False, widget=forms.Textarea(attrs={'rows': '6'}), - help_text='Optional token to put into request header, such as required for API authentication.' + help_text='Optional dict of data to put into request header, such as values required for API authentication.' ) payload = forms.CharField( required=False, diff --git a/django_v5/test_app/templates/test_app/api_send.html b/django_v5/test_app/templates/test_app/api_send.html index 43bf8ef..8dc577f 100644 --- a/django_v5/test_app/templates/test_app/api_send.html +++ b/django_v5/test_app/templates/test_app/api_send.html @@ -305,10 +305,10 @@ <div class="field-group"> <div class="label"> <p> - Header Token: + Header Params: </p> </div> - <pre>MyExampleHeaderAuthToken-112233445566778899ABABCDCD</pre> + <pre>{"Testing": "Test"}</pre> </div> <div class="field-group"> <div class="label"> @@ -331,7 +331,7 @@ header: { "Accept": "application/json", - "token": "MyExampleHeaderAuthToken-112233445566778899ABABCDCD" + "Testing": "Test" } data: { diff --git a/django_v5/test_app/views.py b/django_v5/test_app/views.py index 2a7d013..d44e6c7 100644 --- a/django_v5/test_app/views.py +++ b/django_v5/test_app/views.py @@ -352,7 +352,7 @@ def api_send(request): url = str(form.cleaned_data['url']).strip() get_params = str(form.cleaned_data.get('get_params', '')).strip() - header_token = str(form.cleaned_data.get('header_token', '')).strip() + header_params = str(form.cleaned_data.get('header_params', '')).strip() payload = str(form.cleaned_data.get('payload', '{}')).strip() if len(payload) > 0: try: @@ -379,8 +379,16 @@ def api_send(request): # Determine header values. headers = {'Accept': 'application/json'} - if header_token: - headers['token'] = header_token + if len(payload) > 0: + try: + payload = json.loads(payload) + except json.decoder.JSONDecodeError: + has_error = True + payload = {} + form.add_error( + 'payload', + 'Unrecognized/invalid JSON syntax. Please double check syntax and try again.', + ) # Determine data values. if payload: -- GitLab