コード例 #1
0
ファイル: api.py プロジェクト: eve-basil/prices
    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)
コード例 #2
0
ファイル: api.py プロジェクト: eve-basil/prices
 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)
コード例 #3
0
ファイル: api.py プロジェクト: eve-basil/prices
 def on_get(req, resp):
     result = Prices.list(req.context['session'])
     found = [row.dict() for row in result]
     respond(resp, body=json.dumps(found))