5
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
"""访问日志服务。"""
|
||||
|
||||
from datetime import datetime, timezone
|
||||
|
||||
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(timezone.utc).isoformat(),
|
||||
user_agent=user_agent[:500] if user_agent else None,
|
||||
request_type=request_type,
|
||||
)
|
||||
self._session.add(log)
|
||||
self._session.commit()
|
||||
Reference in New Issue
Block a user