@@ -12,6 +12,7 @@ import (
1212 "github.com/gin-gonic/gin"
1313 lru "github.com/hashicorp/golang-lru/v2"
1414 "github.com/pkg/errors"
15+ "gorm.io/datatypes"
1516 "gorm.io/gorm"
1617)
1718
@@ -30,24 +31,22 @@ type AdvisoryDetailItem struct {
3031}
3132
3233type AdvisoryDetailAttributes struct {
33- Description string `json:"description"`
34- ModifiedDate * time.Time `json:"modified_date"`
35- PublicDate * time.Time `json:"public_date"`
36- Topic string `json:"topic"`
37- Synopsis string `json:"synopsis"`
38- Solution * string `json:"solution"`
39- AdvisoryTypeName string `json:"advisory_type_name"`
40- Severity * int `json:"severity"`
41- Fixes * string `json:"fixes"`
42- Cves [] string `json:"cves"`
43- References []string `json:"references"`
44- RebootRequired bool `json:"reboot_required"`
45- ReleaseVersions [] string `json:"release_versions"`
46- Packages packages `json:"packages"`
34+ Description string `json:"description"`
35+ ModifiedDate * time.Time `json:"modified_date"`
36+ PublicDate * time.Time `json:"public_date"`
37+ Topic string `json:"topic"`
38+ Synopsis string `json:"synopsis"`
39+ Solution * string `json:"solution"`
40+ AdvisoryTypeName string `json:"advisory_type_name"`
41+ Severity * int `json:"severity"`
42+ Fixes * string `json:"fixes"`
43+ Cves datatypes. JSONSlice [ string ] `json:"cves" swaggertype:"array,string "`
44+ References []string `json:"references"`
45+ RebootRequired bool `json:"reboot_required"`
46+ ReleaseVersions datatypes. JSONSlice [ string ] `json:"release_versions" swaggertype:"array,string "`
47+ Packages datatypes. JSONSlice [ string ] `json:"packages" swaggertype:"array,string "`
4748}
4849
49- type packages []string
50-
5150// @Summary Show me details an advisory by given advisory name
5251// @Description Show me details an advisory by given advisory name
5352// @ID detailAdvisory
@@ -95,16 +94,6 @@ func getAdvisoryFromDB(db *gorm.DB, advisoryName string) (*AdvisoryDetailRespons
9594 return nil , err
9695 }
9796
98- cves , err := parseJSONList (advisory .CveList )
99- if err != nil {
100- return nil , errors .Wrap (err , "CVEs parsing error" )
101- }
102-
103- releaseVersions , err := parseJSONList (advisory .ReleaseVersions )
104- if err != nil {
105- return nil , errors .Wrap (err , "release_versions parsing error" )
106- }
107-
10897 ada := AdvisoryDetailAttributes {
10998 Description : advisory .Description ,
11099 ModifiedDate : advisory .ModifiedDate ,
@@ -115,40 +104,22 @@ func getAdvisoryFromDB(db *gorm.DB, advisoryName string) (*AdvisoryDetailRespons
115104 Severity : advisory .SeverityID ,
116105 AdvisoryTypeName : database .AdvisoryTypes [advisory .AdvisoryTypeID ],
117106 Fixes : nil ,
118- Cves : cves ,
107+ Cves : advisory .CveList ,
108+ Packages : advisory .PackageData ,
119109 References : []string {},
120110 RebootRequired : advisory .RebootRequired ,
121- ReleaseVersions : releaseVersions ,
122- }
123-
124- pkgs , err := parsePackages (advisory .PackageData )
125- if err != nil {
126- return nil , errors .Wrap (err , "packages parsing error" )
111+ ReleaseVersions : advisory .ReleaseVersions ,
127112 }
128113
129114 var resp = AdvisoryDetailResponse {Data : AdvisoryDetailItem {
130115 ID : advisory .Name ,
131116 Type : "advisory" ,
132117 Attributes : ada ,
133118 }}
134- resp .Data .Attributes .Packages = pkgs
135119
136120 return & resp , nil
137121}
138122
139- func parsePackages (jsonb []byte ) (packages , error ) {
140- if jsonb == nil {
141- return packages {}, nil
142- }
143-
144- var err error
145- pkgs , err := parseJSONList (jsonb )
146- if err != nil {
147- return nil , err
148- }
149- return pkgs , nil
150- }
151-
152123func InitAdvisoryDetailCache () {
153124 middlewares .AdvisoryDetailGauge .Set (0 )
154125 if ! config .EnableAdvisoryDetailCache {
0 commit comments