diff --git a/apimanager/connectormethod/forms.py b/apimanager/connectormethod/forms.py index 9101ab4..eb99744 100644 --- a/apimanager/connectormethod/forms.py +++ b/apimanager/connectormethod/forms.py @@ -1,5 +1,10 @@ -from django import forms +""" +Forms of ATMs app +""" +from django import forms +from django.utils.translation import ugettext_lazy as _ +import random class ConnectorMethodForm(forms.Form): api_collections_body = forms.CharField( @@ -21,4 +26,45 @@ class ConnectorMethodEndpointForm(forms.Form): } ), required=True + ) +class CreateConnectorMethodForm(forms.Form): + connector_method_id = forms.CharField( + label=_('Connector Method Id'), + widget=forms.TextInput( + attrs={ + 'placeholder': 'connector_method_id-{}'.format(random.randint(1,1000)), + 'class': 'form-control', + } + ), + initial='connector_method_id-{}'.format(random.randint(1,1000)), + ) + method_name = forms.CharField( + label=_('Method Name'), + widget=forms.TextInput( + attrs={ + 'placeholder': _('Method Name'), + 'class': 'form-control', + } + ), + required=True + ) + programming_lang = forms.CharField( + label=_('Programming Language'), + widget=forms.TextInput( + attrs={ + 'placeholder': _('Programming Lang'), + 'class': 'form-control', + } + ), + required=True + ) + method_body = forms.CharField( + label=_('Method Body'), + widget=forms.TextInput( + attrs={ + 'placeholder': _('Method Body'), + 'class': 'form-control', + } + ), + required=True ) \ No newline at end of file diff --git a/apimanager/connectormethod/templates/connectormethod/index.html b/apimanager/connectormethod/templates/connectormethod/index.html index 6a1306f..552b4b3 100644 --- a/apimanager/connectormethod/templates/connectormethod/index.html +++ b/apimanager/connectormethod/templates/connectormethod/index.html @@ -1,9 +1,9 @@ {% extends 'base.html' %} {% load static i18n %} -{% block page_title %}{{ block.super }} / API Collections{% endblock page_title %} +{% block page_title %}{{ block.super }} / Connector Methods{% endblock page_title %} {% block content %} -

{% trans "Connector Method" %}

+

{% trans "Connector Methods" %}


diff --git a/apimanager/connectormethod/urls.py b/apimanager/connectormethod/urls.py index 80e346d..51a7737 100644 --- a/apimanager/connectormethod/urls.py +++ b/apimanager/connectormethod/urls.py @@ -16,7 +16,6 @@ urlpatterns = [ url(r'^my-connectormethod-ids/(?P[\w\@\.\+-]+)$', DetailView.as_view(), name='connector_detail'), - ] """url(r'^my-connectormethod-ids/(?P[\w\@\.\+-]+)$', DetailView.as_view(), diff --git a/apimanager/connectormethod/views.py b/apimanager/connectormethod/views.py index bd3abd7..9e44559 100644 --- a/apimanager/connectormethod/views.py +++ b/apimanager/connectormethod/views.py @@ -16,10 +16,50 @@ from django.views.decorators.csrf import csrf_exempt class IndexView(LoginRequiredMixin, FormView): - """Index view for config""" + """Index view for Connector Methods""" template_name = "connectormethod/index.html" form_class = ConnectorMethodForm success_url = reverse_lazy('connectormethod-index') + def dispatch(self, request, *args, **kwargs): + self.api = API(request.session.get('obp')) + return super(IndexView, self).dispatch(request, *args, **kwargs) + + def get_form(self, *args, **kwargs): + form = super(IndexView, self).get_form(*args, **kwargs) + # Cannot add api in constructor: super complains about unknown kwarg + form.api = self.api + fields = form.fields + try: + fields['is_accessible'].choices = [('',_('Choose...')),(Scala, Scala), (Java, Java), (JavaScript, JavaScript)] + except APIError as err: + messages.error(self.request, err) + except Exception as err: + messages.error(self.request, err) + + return form + def form_valid(self, form): + try: + data = form.cleaned_data + urlpath = '/management/connector-methods' + payload ={ + "connector_method_id": data["connector_method_id"], + "method_name": data["method_name"], + "programming_lang": data["programming_lang"] if data["programming_lang"]!="" else "false", + "method_body": data["method_body"], + } + result = self.api.post(urlpath, payload=payload) + except APIError as err: + messages.error(self.request, "Unknown Error") + return super(IndexView, self).form_invalid(form) + except Exception as err: + messages.error(self.request, "Unknown Error") + return super(IndexView, self).form_invalid(form) + if 'code' in result and result['code']>=400: + messages.error(self.request, result['message']) + return super(IndexView, self).form_valid(form) + msg = 'Connector Method has been created successfully!' + messages.success(self.request, msg) + return super(IndexView, self).form_valid(form) def get_context_data(self, **kwargs): context = super(IndexView, self).get_context_data(**kwargs)