示例#1
0
class Single:
  def __init__(self, database):
    self.model = Report(database)

  def on_get(self, req, resp, report_id):
    if authorize_as(req.auth, 'developer'):
      resource = self.model.find(report_id)
      if resource != None:
        resp.body = dumps(resource)
      else:
        resp.status = HTTP_404
    else:
      raise HTTPUnauhtorized('unauthorized', 'unauthorized')

  def on_put(self, req, resp, report_id):
    if authorize_as(req.auth, 'developer'):
      body = loads(req.stream.read().decode('utf-8'))
      resource = self.model.update(body, report_id)
      if resource.modified_count == 1:
        resp.status = HTTP_204
    else:
      raise HTTPUnauthorized('unauthorized', 'unauthorized')