Skip to content

Commit

Permalink
feat: 新增get_template_list接口支持标签过滤能力 TencentBlueKing#7603
Browse files Browse the repository at this point in the history
  • Loading branch information
guohelu committed Nov 15, 2024
1 parent 8ee5305 commit d452440
Showing 1 changed file with 16 additions and 0 deletions.
16 changes: 16 additions & 0 deletions gcloud/apigw/views/get_template_list.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
from gcloud.iam_auth.utils import get_flow_allowed_actions_for_user
from gcloud.iam_auth.view_interceptors.apigw import ProjectViewInterceptor
from apigw_manager.apigw.decorators import apigw_require
from gcloud.label.models import TemplateLabelRelation


@login_exempt
Expand All @@ -40,6 +41,7 @@ def get_template_list(request, project_id):
template_source = request.GET.get("template_source", PROJECT)
id_in = request.GET.get("id_in", None)
name_keyword = request.GET.get("name_keyword", None)
label_ids = request.GET.get("label_ids", None)

if id_in:
try:
Expand All @@ -48,6 +50,16 @@ def get_template_list(request, project_id):
id_in = None
logger.exception("[API] id_in[{}] resolve fail, ignore.".format(id_in))

if label_ids:
try:
label_ids = label_ids.split(",")
label_template_ids = TemplateLabelRelation.objects.fetch_template_ids_using_labels(label_ids)
label_template_ids = list(map(str, label_template_ids))
if id_in:
id_in = list(set(id_in).union(label_template_ids))
except Exception:
logger.exception("[API] label_ids[{}] resolve fail, ignore.".format(label_ids))

filter_kwargs = dict(is_deleted=False)
if id_in:
filter_kwargs["id__in"] = id_in
Expand All @@ -72,4 +84,8 @@ def get_template_list(request, project_id):
if allowed:
template_info["auth_actions"].append(action)

templates_labels = TemplateLabelRelation.objects.fetch_templates_labels(template_id_list)
for obj in template_list:
obj["template_labels"] = templates_labels.get(obj["id"], [])

return {"result": True, "data": template_list, "code": err_code.SUCCESS.code}

0 comments on commit d452440

Please sign in to comment.