fixed, scheduler, added search to log, added advanced search
This commit is contained in:
@@ -46,6 +46,8 @@ def create_account(data: AccountCreate, db: Session = Depends(get_db)):
|
||||
db.add(account)
|
||||
db.commit()
|
||||
db.refresh(account)
|
||||
from app.services.scheduler import add_account_job
|
||||
add_account_job(account)
|
||||
return account
|
||||
|
||||
|
||||
@@ -62,6 +64,8 @@ def update_account(account_id: int, data: AccountUpdate, db: Session = Depends(g
|
||||
setattr(account, key, value)
|
||||
db.commit()
|
||||
db.refresh(account)
|
||||
from app.services.scheduler import add_account_job
|
||||
add_account_job(account)
|
||||
return account
|
||||
|
||||
|
||||
@@ -70,6 +74,8 @@ def delete_account(account_id: int, db: Session = Depends(get_db)):
|
||||
account = db.get(Account, account_id)
|
||||
if not account:
|
||||
raise HTTPException(404, "Konto nicht gefunden")
|
||||
from app.services.scheduler import remove_account_job
|
||||
remove_account_job(account_id)
|
||||
db.delete(account)
|
||||
db.commit()
|
||||
|
||||
|
||||
@@ -11,6 +11,13 @@ router = APIRouter(prefix="/api/logs", tags=["logs"])
|
||||
def get_logs(
|
||||
account_id: int | None = None,
|
||||
level: str | None = None,
|
||||
search: str | None = None,
|
||||
search_subject: str | None = None,
|
||||
search_from: str | None = None,
|
||||
search_rule: str | None = None,
|
||||
search_message: str | None = None,
|
||||
search_details: str | None = None,
|
||||
search_folder: str | None = None,
|
||||
limit: int = Query(default=100, le=500),
|
||||
offset: int = 0,
|
||||
db: Session = Depends(get_db),
|
||||
@@ -20,6 +27,30 @@ def get_logs(
|
||||
query = query.filter(FilterLog.account_id == account_id)
|
||||
if level:
|
||||
query = query.filter(FilterLog.level == level)
|
||||
# Einfache Suche (ODER über alle Felder)
|
||||
if search:
|
||||
term = f"%{search}%"
|
||||
query = query.filter(
|
||||
FilterLog.message.ilike(term)
|
||||
| FilterLog.mail_subject.ilike(term)
|
||||
| FilterLog.mail_from.ilike(term)
|
||||
| FilterLog.rule_name.ilike(term)
|
||||
| FilterLog.details.ilike(term)
|
||||
| FilterLog.folder.ilike(term)
|
||||
)
|
||||
# Erweiterte Suche (UND pro Feld)
|
||||
if search_subject:
|
||||
query = query.filter(FilterLog.mail_subject.ilike(f"%{search_subject}%"))
|
||||
if search_from:
|
||||
query = query.filter(FilterLog.mail_from.ilike(f"%{search_from}%"))
|
||||
if search_rule:
|
||||
query = query.filter(FilterLog.rule_name.ilike(f"%{search_rule}%"))
|
||||
if search_message:
|
||||
query = query.filter(FilterLog.message.ilike(f"%{search_message}%"))
|
||||
if search_details:
|
||||
query = query.filter(FilterLog.details.ilike(f"%{search_details}%"))
|
||||
if search_folder:
|
||||
query = query.filter(FilterLog.folder.ilike(f"%{search_folder}%"))
|
||||
total = query.count()
|
||||
logs = query.offset(offset).limit(limit).all()
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user