From 303a8d4e6a04b59d1d7294ce94827c14463b5e56 Mon Sep 17 00:00:00 2001 From: bidaya0 Date: Mon, 12 Jun 2023 10:43:50 +0800 Subject: [PATCH] feat: add new package vul level api. --- dongtai_web/dongtai_sca/urls.py | 2 + .../dongtai_sca/views/newpackagevullevel.py | 47 +++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 dongtai_web/dongtai_sca/views/newpackagevullevel.py diff --git a/dongtai_web/dongtai_sca/urls.py b/dongtai_web/dongtai_sca/urls.py index 23ca8475b..4a596b129 100644 --- a/dongtai_web/dongtai_sca/urls.py +++ b/dongtai_web/dongtai_sca/urls.py @@ -7,6 +7,7 @@ from dongtai_web.dongtai_sca.views.newpackagevuldetail import PackageVulDetail from dongtai_web.dongtai_sca.views.newpackagesummary import NewPackageSummary from dongtai_web.dongtai_sca.views.newpackagevuls import NewPackageVuls +from dongtai_web.dongtai_sca.views.newpackagevullevel import PackageVulLevels from dongtai_web.dongtai_sca.views.newpackageprojects import NewPackageRelationProject from dongtai_web.dongtai_sca.views.newpackageprojectversions import NewPackageRelationProjectVersion from dongtai_web.dongtai_sca.views.package_vul import OnePackageVulList, AssetPackageVulList, AssetPackageVulDetail @@ -33,6 +34,7 @@ 'package_vuls///', NewPackageVuls.as_view()), path('package_vul/', PackageVulDetail.as_view()), + path('package_vul_level', PackageVulLevels.as_view()), path( 'package////relation_projects', NewPackageRelationProject.as_view()), diff --git a/dongtai_web/dongtai_sca/views/newpackagevullevel.py b/dongtai_web/dongtai_sca/views/newpackagevullevel.py new file mode 100644 index 000000000..ea02ca27e --- /dev/null +++ b/dongtai_web/dongtai_sca/views/newpackagevullevel.py @@ -0,0 +1,47 @@ +import logging + +from dongtai_common.models import User +from dongtai_web.dongtai_sca.models import Package +from django.http import JsonResponse +from rest_framework import views +from django.core.paginator import Paginator +from django.forms.models import model_to_dict +from dongtai_common.endpoint import R, UserEndPoint +from django.utils.translation import gettext_lazy as _ +from dongtai_web.utils import extend_schema_with_envcheck_v2, get_response_serializer +from rest_framework import serializers + +from dongtai_web.dongtai_sca.utils import get_asset_id_by_aggr_id +from dongtai_common.models.asset_vul_v2 import IastAssetVulV2 +from rest_framework_dataclasses.serializers import DataclassSerializer +from dongtai_web.dongtai_sca.scan.utils import get_level +from dataclasses import dataclass + +logger = logging.getLogger(__name__) + + +@dataclass +class PackageVulLevel: + name_value: str + id: int + + +class PackeageVulLevelSerializer(DataclassSerializer): + + class Meta: + dataclass = PackageVulLevel + + +_NewResponseSerializer = get_response_serializer(PackeageVulLevelSerializer()) + +LEVEL_IDS = [1, 2, 3, 4] + + +class PackageVulLevels(UserEndPoint): + + @extend_schema_with_envcheck_v2(responses={200: _NewResponseSerializer}) + def get(self, request): + return R.success(data=[{ + "id": level_id, + "name_value": get_level(level_id) + } for level_id in LEVEL_IDS])