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)