diff options
Diffstat (limited to 'omaha_server/feedback/views.py')
-rw-r--r-- | omaha_server/feedback/views.py | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/omaha_server/feedback/views.py b/omaha_server/feedback/views.py index 906ed01..7182293 100644 --- a/omaha_server/feedback/views.py +++ b/omaha_server/feedback/views.py @@ -23,14 +23,22 @@ from copy import copy from django.core.files.uploadedfile import SimpleUploadedFile from django.views.generic import FormView from django.views.decorators.csrf import csrf_exempt -from django.http import HttpResponse +from django.http import HttpResponse, HttpResponseBadRequest +from django.conf import settings + from google.protobuf.descriptor import FieldDescriptor from protobuf_to_dict import protobuf_to_dict, TYPE_CALLABLE_MAP +from raven import Client from feedback.forms import FeedbackForm from feedback.proto_gen.extension_pb2 import ExtensionSubmit from omaha_server.utils import get_client_ip +dsn = getattr(settings, 'RAVEN_CONFIG', None) +if dsn: + dsn = dsn['dsn'] +raven = Client(dsn, name=getattr(settings, 'HOST_NAME', None), release=getattr(settings, 'APP_VERSION', None)) + class FeedbackFormView(FormView): http_method_names = ('post',) @@ -80,5 +88,6 @@ class FeedbackFormView(FormView): return HttpResponse(obj.pk, status=200) def form_invalid(self, form): - # We're not expecting to end up here in case of correct request - raise NotImplementedError + message = 'Invalid feedback form: ' + form.errors.as_json() + raven.captureMessage(message=message, extra=form.cleaned_data) + return HttpResponseBadRequest(message) |