33 lines
891 B
Python
33 lines
891 B
Python
"""访问日志服务。"""
|
|
|
|
from datetime import datetime
|
|
|
|
from app.models.access_log import AccessLog
|
|
from sqlalchemy.orm import Session
|
|
|
|
|
|
class AccessLogService:
|
|
def __init__(self, session: Session) -> None:
|
|
self._session = session
|
|
|
|
def record(
|
|
self,
|
|
*,
|
|
knowledge_base_id: str,
|
|
document_id: str | None = None,
|
|
path: str,
|
|
user_agent: str | None = None,
|
|
request_type: str | None = None,
|
|
) -> None:
|
|
"""记录一次访问。"""
|
|
log = AccessLog(
|
|
knowledge_base_id=knowledge_base_id,
|
|
document_id=document_id,
|
|
path=path,
|
|
accessed_at=datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
|
|
user_agent=user_agent[:500] if user_agent else None,
|
|
request_type=request_type,
|
|
)
|
|
self._session.add(log)
|
|
self._session.commit()
|