def on_post(req, resp, by_id): raw_body = req.stream.read() if not raw_body: raise falcon.HTTPBadRequest('A valid JSON document is required.', '') try: body = json.loads(raw_body.decode('utf-8')) except UnicodeDecodeError: msg = 'Non-UTF8 characters found in the request body' raise falcon.HTTPBadRequest(msg, '') except ValueError as e: msg = 'Could not parse the body as Json: {0}. Ignoring.'.format(e) raise falcon.HTTPBadRequest(msg, '') submitted = Prices.parse(by_id, body) Prices.record(req.context['session'], submitted) resp.add_link('/prices/%s' % by_id, 'self') respond(resp)
def on_get(req, resp, by_id): resource_id = as_int(by_id) if not resource_id: raise falcon.HTTPBadRequest('Invalid ID', 'Expected integer identifier') result = Prices.get(req.context['session'], resource_id) if result: respond(resp, body=result.json()) else: respond(resp, status=falcon.HTTP_404)
def on_get(req, resp): result = Prices.list(req.context['session']) found = [row.dict() for row in result] respond(resp, body=json.dumps(found))