Example #1
0
 def delete(self, id):
     session = flask.g.session
     try:
         result = sautils.get_one(session, self.base_resource, id,
                                  self.alternate_key)
         session.delete(result)
         session.commit()
         return flask.Response(status=204)
     except sa_exc.NoResultFound:
         raise exc.NotFound()
Example #2
0
 def put(self, id, **kwargs):
     session = flask.g.session
     data = flaskutils.json_request_data(flask.request.data)
     if not data:
         raise exc.RequiresBody()
     try:
         result = sautils.get_one(session, self.base_resource, id,
                                  self.alternate_key)
         for attach, value in self.attachments.items():
             setattr(result, attach, value)
         result.update(**data)
         session.commit()
         return jsonp.jsonify(result.to_dict(**kwargs)), 200, {}
     except sa_exc.NoResultFound:
         raise exc.NotFound()
Example #3
0
 def get(self, id, **kwargs):
     session = flask.g.session
     filters = flask.request.args
     q = session.query(self.base_resource)
     if id is None:
         res = list()
         if len(filters) or len(self.additional_filters):
             q = sautils.create_filters(q, self.base_resource,
                                        filters, self.additional_filters)
         total = q.count()
         q, output = sautils.handle_paging(q, filters, total,
                                           flask.request.url)
         results = q.all()
         if results is not None:
             for result in results:
                 res.append(result.to_dict(**kwargs))
         return jsonp.jsonify(objects=res, **output), 200, {}
     try:
         result = sautils.get_one(session, self.base_resource, id,
                                  self.alternate_key)
         return jsonp.jsonify(object=result.to_dict(**kwargs)), 200, {}
     except sa_exc.NoResultFound:
         raise exc.NotFound()