From 39f59620aa1f043d90fdcf49bc5377bc151aee58 Mon Sep 17 00:00:00 2001 From: Pedro Nasser Date: Thu, 11 Aug 2016 01:04:11 -0300 Subject: [PATCH 1/2] added image filter --- api/models/datastore.go | 3 ++- api/models/route.go | 1 + api/server/routes_list.go | 4 ++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/api/models/datastore.go b/api/models/datastore.go index be4127b57..2955e3bd4 100644 --- a/api/models/datastore.go +++ b/api/models/datastore.go @@ -32,5 +32,6 @@ func ApplyAppFilter(app *App, filter *AppFilter) bool { func ApplyRouteFilter(route *Route, filter *RouteFilter) bool { return (filter.Path == "" || route.Path == filter.Path) && - (filter.AppName == "" || route.AppName == filter.AppName) + (filter.AppName == "" || route.AppName == filter.AppName) && + (filter.Image == "" || route.Image == filter.Image) && } diff --git a/api/models/route.go b/api/models/route.go index 627ac8b1f..9c3c392e5 100644 --- a/api/models/route.go +++ b/api/models/route.go @@ -64,4 +64,5 @@ func (r *Route) Validate() error { type RouteFilter struct { Path string AppName string + Image string } diff --git a/api/server/routes_list.go b/api/server/routes_list.go index 5f45ed8b2..dc1423952 100644 --- a/api/server/routes_list.go +++ b/api/server/routes_list.go @@ -21,6 +21,10 @@ func handleRouteList(c *gin.Context) { AppName: appName, } + if img := c.Query("image"); img != "" { + filter.Image = img + } + routes, err := Api.Datastore.GetRoutes(filter) if err != nil { log.WithError(err).Error(models.ErrRoutesGet) From 3ded66b32acd0f37aafc0b541b75fc7dc44f2f3c Mon Sep 17 00:00:00 2001 From: Pedro Nasser Date: Thu, 11 Aug 2016 02:18:02 -0300 Subject: [PATCH 2/2] fix filter and added postgres --- api/datastore/postgres/postgres.go | 4 ++++ api/models/datastore.go | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/api/datastore/postgres/postgres.go b/api/datastore/postgres/postgres.go index 21b44105f..ffa6b962b 100644 --- a/api/datastore/postgres/postgres.go +++ b/api/datastore/postgres/postgres.go @@ -275,6 +275,10 @@ func buildFilterQuery(filter *models.RouteFilter) string { filterQueries = append(filterQueries, fmt.Sprintf("app_name = '%s'", filter.AppName)) } + if filter.Image != "" { + filterQueries = append(filterQueries, fmt.Sprintf("image = '%s'", filter.Image)) + } + for i, field := range filterQueries { if i == 0 { filterQuery = fmt.Sprintf("WHERE %s ", field) diff --git a/api/models/datastore.go b/api/models/datastore.go index 2955e3bd4..81a63f1bd 100644 --- a/api/models/datastore.go +++ b/api/models/datastore.go @@ -33,5 +33,5 @@ func ApplyAppFilter(app *App, filter *AppFilter) bool { func ApplyRouteFilter(route *Route, filter *RouteFilter) bool { return (filter.Path == "" || route.Path == filter.Path) && (filter.AppName == "" || route.AppName == filter.AppName) && - (filter.Image == "" || route.Image == filter.Image) && + (filter.Image == "" || route.Image == filter.Image) }