return 404 if checking an object that doesn't exist (#5842)

This commit is contained in:
Frédéric Péters 2014-10-31 15:42:03 +01:00
parent 582f2ec12c
commit b787391992
1 changed files with 12 additions and 7 deletions

View File

@ -3,7 +3,8 @@ import string
from django.conf import settings
from django.core.urlresolvers import reverse_lazy
from django.http import HttpResponse
from django.http import HttpResponse, Http404
from django.shortcuts import get_object_or_404
from django.views.generic.base import TemplateView
from django.views.generic.edit import CreateView, UpdateView, DeleteView
@ -136,12 +137,16 @@ class ServiceDeleteView(DeleteView):
return None
def operational_check_view(request, service, slug, **kwargs):
if service == 'wcs':
object = Wcs.objects.get(slug=slug)
elif service == 'authentic':
object = Authentic.objects.get(slug=slug)
elif service == 'passerelle':
object = Passerelle.objects.get(slug=slug)
klass = {
'wcs': Wcs,
'authentic': Authentic,
'passerelle': Passerelle
}.get(service)
if klass is None:
raise Http404
object = get_object_or_404(klass, slug=slug)
object.check_operational()
response = HttpResponse(content_type='application/json')
json.dump({'operational': object.is_operational()}, response)