From bfd070a0a505d6fa71c199ab87ff86b5ccf4bab2 Mon Sep 17 00:00:00 2001
From: Jean-Paul Calderone <exarkun@twistedmatrix.com>
Date: Mon, 19 Aug 2019 13:11:32 -0400
Subject: [PATCH] give up some information about the nature of the failure

---
 src/_zkapauthorizer/resource.py | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/_zkapauthorizer/resource.py b/src/_zkapauthorizer/resource.py
index 979e40f..9533973 100644
--- a/src/_zkapauthorizer/resource.py
+++ b/src/_zkapauthorizer/resource.py
@@ -103,12 +103,12 @@ class _VoucherCollection(Resource):
         try:
             payload = loads(request.content.read())
         except Exception:
-            return bad_request().render(request)
+            return bad_request(u"json request body required").render(request)
         if payload.keys() != [u"voucher"]:
-            return bad_request().render(request)
+            return bad_request(u"request object must have exactly one key: 'voucher'").render(request)
         voucher = payload[u"voucher"]
         if not is_syntactic_voucher(voucher):
-            return bad_request().render(request)
+            return bad_request(u"submitted voucher is syntactically invalid").render(request)
 
         self._controller.redeem(voucher)
         return b""
@@ -176,11 +176,11 @@ class VoucherView(Resource):
         return self._voucher.to_json()
 
 
-def bad_request():
+def bad_request(reason=u"Bad Request"):
     """
     :return IResource: A resource which can be rendered to produce a **BAD
         REQUEST** response.
     """
     return ErrorPage(
-        BAD_REQUEST, b"Bad Request", b"Bad Request",
+        BAD_REQUEST, b"Bad Request", reason.encode("utf-8"),
     )
-- 
GitLab