feat: 8.1 Создать модуль app/audit/service.py
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
from typing import Any
|
||||
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app.models import AuditEvent
|
||||
|
||||
|
||||
# принимает сессию SQLAlchemy и параметры события (actor_id, client_id, ip, user_agent, metadata);
|
||||
# создаёт запись AuditEvent и коммитит транзакцию
|
||||
def write_event(
|
||||
db: Session,
|
||||
event_type: str,
|
||||
actor_id: int | None = None,
|
||||
client_id: str | None = None,
|
||||
ip: str | None = None,
|
||||
user_agent: str | None = None,
|
||||
metadata: dict[str, Any] | None = None,
|
||||
) -> AuditEvent:
|
||||
event = AuditEvent(
|
||||
event_type=event_type,
|
||||
actor_id=actor_id,
|
||||
client_id=client_id,
|
||||
ip=ip,
|
||||
user_agent=user_agent,
|
||||
metadata_json=metadata,
|
||||
)
|
||||
db.add(event)
|
||||
db.commit()
|
||||
return event
|
||||
Reference in New Issue
Block a user