Skip to content
This repository was archived by the owner on Oct 23, 2023. It is now read-only.

Commit 16eafbe

Browse files
committed
Merge pull request #617 from RobGThai/master
Add support to 'application/json' Content-Type when reporting to Sentry
2 parents 585be74 + 507192c commit 16eafbe

1 file changed

Lines changed: 28 additions & 3 deletions

File tree

raven/contrib/flask.py

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -170,18 +170,43 @@ def get_user_info(self, request):
170170
return user_info
171171

172172
def get_http_info(self, request):
173+
"""
174+
Determine how to retrieve actual data by using request.mimetype.
175+
"""
176+
177+
retriever = self.get_form_data
178+
179+
if self.is_json_type(request.mimetype):
180+
retriever = self.get_json_data
181+
182+
return self.get_http_info_with_retriever(request, retriever)
183+
184+
def is_json_type(self, content_type):
185+
return content_type == 'application/json'
186+
187+
def get_form_data(self, request):
188+
return request.form
189+
190+
def get_json_data(self, request):
191+
return request.data
192+
193+
def get_http_info_with_retriever(self, request,
194+
retriever=get_form_data):
195+
"""
196+
Exact method for getting http_info but with form data work around.
197+
"""
173198
urlparts = _urlparse.urlsplit(request.url)
174199

175200
try:
176-
formdata = request.form
201+
data = retriever(request)
177202
except ClientDisconnected:
178-
formdata = {}
203+
data = {}
179204

180205
return {
181206
'url': '%s://%s%s' % (urlparts.scheme, urlparts.netloc, urlparts.path),
182207
'query_string': urlparts.query,
183208
'method': request.method,
184-
'data': formdata,
209+
'data': data,
185210
'headers': dict(get_headers(request.environ)),
186211
'env': dict(get_environ(request.environ)),
187212
}

0 commit comments

Comments
 (0)