0001-environment-add-service-creation-api-31449.patch
hobo/environment/urls.py | ||
---|---|---|
1 | 1 |
from django.conf.urls import url |
2 |
from django.views.decorators.csrf import csrf_exempt |
|
2 | 3 | |
3 | 4 |
from .views import * |
4 | 5 | |
... | ... | |
19 | 20 |
url(r'^new-variable-(?P<service>\w+)/(?P<slug>[\w-]+)$', |
20 | 21 |
VariableCreateView.as_view(), name='new-variable-service',), |
21 | 22 |
url(r'^debug.json$', debug_json, name='debug-json'), |
23 |
url(r'^api/create/(?P<service>[a-z]+)/$', csrf_exempt(ServiceCreateApi), name='api-create-service'), |
|
22 | 24 |
] |
hobo/environment/views.py | ||
---|---|---|
104 | 104 |
return reverse_lazy('environment-home') |
105 | 105 | |
106 | 106 | |
107 |
def ServiceCreateApi(request, service): |
|
108 |
from django.http import JsonResponse |
|
109 |
if request.method != 'POST' or service not in [s.Extra.service_id for s in AVAILABLE_SERVICES]: |
|
110 |
return JsonResponse({'error': 1, 'data': {'message': ''}}) |
|
111 |
form_class = getattr(forms, service.title() + 'Form') |
|
112 |
form = form_class(request.POST) |
|
113 |
if form.is_valid(): |
|
114 |
form.save() |
|
115 |
return JsonResponse({'error': 0, 'data': {'id': form.id}}) |
|
116 |
else: |
|
117 |
return JsonResponse({'error': 1, 'data': {'message': 'form not valid'}}) |
|
118 | ||
119 | ||
107 | 120 |
class ServiceCreateView(CreateView): |
108 | 121 |
success_url = reverse_lazy('environment-home') |
109 | 122 | |
110 |
- |