from flask import current_app, Blueprint, request, jsonify from sqlalchemy.orm import sessionmaker from sqlalchemy import desc from utils import pgclass log = Blueprint('log', __name__) # 列出log @log.route("/list", methods = ["GET"]) def listlog(): # variables if request.args.get("start") is None or request.args.get("count") is None or \ request.args.get("start").isdigit()==False or request.args.get("count").isdigit()==False: return "Arguments error", 400 rst = int(request.args.get("start")) count = int(request.args.get("count")) # db db = current_app.shared_resource.engine Session = sessionmaker(bind=db) # get ctx with Session() as session: table = pgclass.SQLlog res = session.query(table).order_by(desc(table.id)).offset(rst).limit(count).all() # mapping res = [ {"id":r.id, "created_at":r.created_at, "source":r.source, "message":r.message} for r in res ] return jsonify(res) # 指定顯示特定一條log @log.route("/get/", methods = ["GET"]) def getlog(id:int): # db db = current_app.shared_resource.engine Session = sessionmaker(bind=db) # get ctx with Session() as session: table = pgclass.SQLlog res = session.query(table).filter(table.id == id).all() # mapping res = [ {"id":r.id, "created_at":r.created_at, "source":r.source, "message":r.message} for r in res ] return jsonify(res)