1
0

crud_system_log.py 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. from app.schemas.system_log import SystemLogCreate
  2. from app.db.client import fetch_one, fetch_all, db_execute_commit
  3. def create_system_log(db, log: SystemLogCreate):
  4. # Use log.timestamp if provided, otherwise let DB use CURRENT_TIMESTAMP
  5. if log.timestamp:
  6. rs = db_execute_commit(
  7. db,
  8. """
  9. INSERT INTO system_logs (forum_id, level, source, content, timestamp)
  10. VALUES (?, ?, ?, ?, ?)
  11. RETURNING *
  12. """,
  13. [log.forum_id, log.level, log.source, log.content, log.timestamp]
  14. )
  15. else:
  16. rs = db_execute_commit(
  17. db,
  18. """
  19. INSERT INTO system_logs (forum_id, level, source, content)
  20. VALUES (?, ?, ?, ?)
  21. RETURNING *
  22. """,
  23. [log.forum_id, log.level, log.source, log.content]
  24. )
  25. return fetch_one(rs)
  26. def get_system_logs(db, forum_id: int, limit: int = 100):
  27. rs = db.execute(
  28. "SELECT * FROM system_logs WHERE forum_id = ? ORDER BY timestamp ASC LIMIT ?",
  29. [forum_id, limit]
  30. )
  31. return fetch_all(rs)