api: simplify getLayer route and JSON output

This commit is contained in:
Quentin Machu 2016-01-15 15:57:39 -05:00 committed by Jimmy Zelinskie
parent 92b734d0a4
commit 6e20993bac
2 changed files with 11 additions and 17 deletions

View File

@ -90,20 +90,14 @@ func DELETELayers(w http.ResponseWriter, r *http.Request, p httprouter.Params, e
// GETLayers returns informations about an existing layer, optionally with its features
// and vulnerabilities.
func GETLayers(w http.ResponseWriter, r *http.Request, p httprouter.Params, e *Env) {
withFeatures := false
withVulnerabilities := false
if r.URL.Query().Get("withFeatures") == "true" {
withFeatures = true
}
if r.URL.Query().Get("withVulnerabilities") == "true" {
withFeatures = true
withVulnerabilities = true
}
_, withFeatures := r.URL.Query()["withFeatures"]
_, withVulnerabilities := r.URL.Query()["withVulnerabilities"]
layer, err := e.Datastore.FindLayer(p.ByName("id"), withFeatures, withVulnerabilities)
if err != nil {
httputils.WriteHTTPError(w, 0, err)
return
}
httputils.WriteHTTP(w, http.StatusOK, struct{ Layer database.Layer }{Layer: layer})
}

View File

@ -4,17 +4,17 @@ import "github.com/coreos/clair/utils/types"
// ID is only meant to be used by database implementations and should never be used for anything else.
type Model struct {
ID int
ID int `json:"-"`
}
type Layer struct {
Model
Name string
EngineVersion int
Parent *Layer
Namespace *Namespace
Features []FeatureVersion
EngineVersion int `json:",omitempty"`
Parent *Layer `json:",omitempty"`
Namespace *Namespace `json:",omitempty"`
Features []FeatureVersion `json:",omitempty"`
}
type Namespace struct {
@ -36,7 +36,7 @@ type FeatureVersion struct {
Feature Feature
Version types.Version
AffectedBy []Vulnerability
AffectedBy []Vulnerability `json:",omitempty"`
}
type Vulnerability struct {
@ -48,10 +48,10 @@ type Vulnerability struct {
Link string
Severity types.Priority
FixedIn []FeatureVersion
FixedIn []FeatureVersion `json:",omitempty"`
//Affects []FeatureVersion
// For output purposes. Only make sense when the vulnerability
// is already about a specific Feature/FeatureVersion.
FixedBy types.Version
FixedBy types.Version `json:",omitempty"`
}