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()
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()
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()