Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add new package vul level api. #1509

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions dongtai_web/dongtai_sca/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -33,6 +34,7 @@
'package_vuls/<int:language_id>/<str:package_name>/<str:package_version>',
NewPackageVuls.as_view()),
path('package_vul/<str:vul_id>', PackageVulDetail.as_view()),
path('package_vul_level', PackageVulLevels.as_view()),
path(
'package/<int:language_id>/<str:package_name>/<str:package_version>/relation_projects',
NewPackageRelationProject.as_view()),
Expand Down
47 changes: 47 additions & 0 deletions dongtai_web/dongtai_sca/views/newpackagevullevel.py
Original file line number Diff line number Diff line change
@@ -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])