summaryrefslogtreecommitdiff
path: root/pkg/api/handlers/utils
diff options
context:
space:
mode:
authorJhon Honce <jhonce@redhat.com>2020-01-23 16:13:47 -0700
committerJhon Honce <jhonce@redhat.com>2020-01-23 16:32:00 -0700
commit9634e7eef77abbba2584b8e78daf9c76cfdcedd9 (patch)
tree61731b20c17e12b2c342ec910e28072029d2ecae /pkg/api/handlers/utils
parent8beeb067aac857deb29e91562cf4b6f068fe0328 (diff)
downloadpodman-9634e7eef77abbba2584b8e78daf9c76cfdcedd9.tar.gz
podman-9634e7eef77abbba2584b8e78daf9c76cfdcedd9.tar.bz2
podman-9634e7eef77abbba2584b8e78daf9c76cfdcedd9.zip
Add query parameter converters for complex types
* Add converter for URL query parameters of type map[string][]string * Add converter for URL query parameters of type time.Time * Added function to allocate and configure schema.Decoder for API use * Updated API handlers to leverage new converters, and correct handler code for filter type An encoding example for a client using filters: v := map[string][]string{ "dangling": {"true"}, } payload, err := jsoniter.MarshalToString(v) if err != nil { panic(err) } payload = "?filters=" + url.QueryEscape(payload) Signed-off-by: Jhon Honce <jhonce@redhat.com>
Diffstat (limited to 'pkg/api/handlers/utils')
-rw-r--r--pkg/api/handlers/utils/images.go11
1 files changed, 6 insertions, 5 deletions
diff --git a/pkg/api/handlers/utils/images.go b/pkg/api/handlers/utils/images.go
index 9445298ca..a0d340471 100644
--- a/pkg/api/handlers/utils/images.go
+++ b/pkg/api/handlers/utils/images.go
@@ -15,17 +15,18 @@ func GetImages(w http.ResponseWriter, r *http.Request) ([]*image.Image, error) {
decoder := r.Context().Value("decoder").(*schema.Decoder)
runtime := r.Context().Value("runtime").(*libpod.Runtime)
query := struct {
- //all bool # all is currently unused
- filters []string
- //digests bool # digests is currently unused
+ // all bool # all is currently unused
+ Filters map[string][]string `schema:"filters"`
+ // digests bool # digests is currently unused
}{
// This is where you can override the golang default value for one of fields
}
if err := decoder.Decode(&query, r.URL.Query()); err != nil {
return nil, err
}
- filters := query.filters
- if len(filters) < 1 {
+
+ var filters = []string{}
+ if _, found := r.URL.Query()["filters"]; found {
filters = append(filters, fmt.Sprintf("reference=%s", ""))
}
return runtime.ImageRuntime().GetImagesWithFilters(filters)