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