refactor: TagService to accept db.session explicitly (#37416)

This commit is contained in:
cn7shi
2026-06-15 02:04:28 +00:00
committed by GitHub
parent c6b3e525d1
commit e0773c4d8f
6 changed files with 31 additions and 14 deletions
+3 -2
View File
@@ -6,6 +6,7 @@ from flask_login import current_user
from pydantic import BaseModel, Field
from sqlalchemy import delete, func, select
from sqlalchemy.engine import CursorResult
from sqlalchemy.orm import Session
from werkzeug.exceptions import NotFound
from extensions.ext_database import db
@@ -38,7 +39,7 @@ class TagBindingDeletePayload(BaseModel):
class TagService:
@staticmethod
def get_tags(tag_type: str, current_tenant_id: str, keyword: str | None = None):
def get_tags(session: Session, tag_type: str, current_tenant_id: str, keyword: str | None = None):
stmt = (
select(Tag.id, Tag.type, Tag.name, func.count(TagBinding.id).label("binding_count"))
.outerjoin(TagBinding, Tag.id == TagBinding.tag_id)
@@ -50,7 +51,7 @@ class TagService:
escaped_keyword = escape_like_pattern(keyword)
stmt = stmt.where(sa.and_(Tag.name.ilike(f"%{escaped_keyword}%", escape="\\")))
stmt = stmt.group_by(Tag.id, Tag.type, Tag.name, Tag.created_at)
results: list = list(db.session.execute(stmt.order_by(Tag.created_at.desc())).all())
results: list = list(session.execute(stmt.order_by(Tag.created_at.desc())).all())
return results
@staticmethod