From c849938da2896c7a25ade640f5a457ee2444660f Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Mon, 29 May 2023 14:19:17 +1000 Subject: [PATCH] Fix schema responses not matching tests --- backend/internal/api/router.go | 8 ++++++-- backend/internal/entity/accesslist/methods.go | 2 +- backend/internal/entity/certificate/methods.go | 2 +- backend/internal/entity/certificateauthority/methods.go | 2 +- backend/internal/entity/dnsprovider/methods.go | 2 +- backend/internal/entity/host/methods.go | 2 +- backend/internal/entity/nginxtemplate/methods.go | 2 +- backend/internal/entity/scopes.go | 3 +++ backend/internal/entity/setting/methods.go | 2 +- backend/internal/entity/stream/methods.go | 2 +- backend/internal/entity/upstream/methods.go | 2 +- backend/internal/entity/upstreamserver/methods.go | 2 +- backend/internal/entity/user/methods.go | 2 +- backend/internal/model/pageinfo.go | 8 ++++++++ 14 files changed, 28 insertions(+), 13 deletions(-) diff --git a/backend/internal/api/router.go b/backend/internal/api/router.go index 2ef13e1..f08fc93 100644 --- a/backend/internal/api/router.go +++ b/backend/internal/api/router.go @@ -14,6 +14,7 @@ import ( "npm/internal/entity/dnsprovider" "npm/internal/entity/host" "npm/internal/entity/nginxtemplate" + "npm/internal/entity/setting" "npm/internal/entity/stream" "npm/internal/entity/upstream" "npm/internal/entity/user" @@ -133,8 +134,11 @@ func applyRoutes(r chi.Router) chi.Router { // Settings r.With(middleware.EnforceSetup(true), middleware.Enforce(user.CapabilitySettingsManage)).Route("/settings", func(r chi.Router) { - // r.With(middleware.Filters(setting.GetFilterSchema())). - r.Get("/", handler.GetSettings()) + // List + r.With( + middleware.Filters(setting.Model{}), + ).Get("/", handler.GetSettings()) + r.Get("/{name}", handler.GetSetting()) r.With(middleware.EnforceRequestSchema(schema.CreateSetting())). Post("/", handler.CreateSetting()) diff --git a/backend/internal/entity/accesslist/methods.go b/backend/internal/entity/accesslist/methods.go index f86d9bb..650aeb0 100644 --- a/backend/internal/entity/accesslist/methods.go +++ b/backend/internal/entity/accesslist/methods.go @@ -40,7 +40,7 @@ func List(pageInfo model.PageInfo, filters []model.Filter) (entity.ListResponse, Total: totalRows, Limit: pageInfo.Limit, Offset: pageInfo.Offset, - Sort: pageInfo.Sort, + Sort: pageInfo.GetSort(defaultSort), Filter: filters, } diff --git a/backend/internal/entity/certificate/methods.go b/backend/internal/entity/certificate/methods.go index 676135f..69224bb 100644 --- a/backend/internal/entity/certificate/methods.go +++ b/backend/internal/entity/certificate/methods.go @@ -65,7 +65,7 @@ func List(pageInfo model.PageInfo, filters []model.Filter, expand []string) (ent Total: totalRows, Limit: pageInfo.Limit, Offset: pageInfo.Offset, - Sort: pageInfo.Sort, + Sort: pageInfo.GetSort(defaultSort), Filter: filters, } diff --git a/backend/internal/entity/certificateauthority/methods.go b/backend/internal/entity/certificateauthority/methods.go index 47b40f1..d3f911e 100644 --- a/backend/internal/entity/certificateauthority/methods.go +++ b/backend/internal/entity/certificateauthority/methods.go @@ -40,7 +40,7 @@ func List(pageInfo model.PageInfo, filters []model.Filter) (entity.ListResponse, Total: totalRows, Limit: pageInfo.Limit, Offset: pageInfo.Offset, - Sort: pageInfo.Sort, + Sort: pageInfo.GetSort(defaultSort), Filter: filters, } diff --git a/backend/internal/entity/dnsprovider/methods.go b/backend/internal/entity/dnsprovider/methods.go index 95f037e..b008156 100644 --- a/backend/internal/entity/dnsprovider/methods.go +++ b/backend/internal/entity/dnsprovider/methods.go @@ -40,7 +40,7 @@ func List(pageInfo model.PageInfo, filters []model.Filter) (entity.ListResponse, Total: totalRows, Limit: pageInfo.Limit, Offset: pageInfo.Offset, - Sort: pageInfo.Sort, + Sort: pageInfo.GetSort(defaultSort), Filter: filters, } diff --git a/backend/internal/entity/host/methods.go b/backend/internal/entity/host/methods.go index 6769ed8..d4dd955 100644 --- a/backend/internal/entity/host/methods.go +++ b/backend/internal/entity/host/methods.go @@ -51,7 +51,7 @@ func List(pageInfo model.PageInfo, filters []model.Filter, expand []string) (ent Total: totalRows, Limit: pageInfo.Limit, Offset: pageInfo.Offset, - Sort: pageInfo.Sort, + Sort: pageInfo.GetSort(defaultSort), Filter: filters, } diff --git a/backend/internal/entity/nginxtemplate/methods.go b/backend/internal/entity/nginxtemplate/methods.go index 931f346..5c51dd2 100644 --- a/backend/internal/entity/nginxtemplate/methods.go +++ b/backend/internal/entity/nginxtemplate/methods.go @@ -40,7 +40,7 @@ func List(pageInfo model.PageInfo, filters []model.Filter) (entity.ListResponse, Total: totalRows, Limit: pageInfo.Limit, Offset: pageInfo.Offset, - Sort: pageInfo.Sort, + Sort: pageInfo.GetSort(defaultSort), Filter: filters, } diff --git a/backend/internal/entity/scopes.go b/backend/internal/entity/scopes.go index b4d6811..4f38ce5 100644 --- a/backend/internal/entity/scopes.go +++ b/backend/internal/entity/scopes.go @@ -4,6 +4,7 @@ import ( "fmt" "strings" + "npm/internal/logger" "npm/internal/model" "gorm.io/gorm" @@ -36,6 +37,8 @@ func ScopeOrderBy(pageInfo *model.PageInfo, defaultSort model.Sort) func(db *gor } func ScopeFilters(filters []model.Filter, filterMap map[string]filterMapValue) func(db *gorm.DB) *gorm.DB { + logger.Debug("FILTERS: %+v", filters) + logger.Debug("FILTERMAP: %+v", filterMap) return func(db *gorm.DB) *gorm.DB { for _, f := range filters { // Lookup this filter field from the name map diff --git a/backend/internal/entity/setting/methods.go b/backend/internal/entity/setting/methods.go index 082c726..4886c1f 100644 --- a/backend/internal/entity/setting/methods.go +++ b/backend/internal/entity/setting/methods.go @@ -49,7 +49,7 @@ func List(pageInfo model.PageInfo, filters []model.Filter) (entity.ListResponse, Total: totalRows, Limit: pageInfo.Limit, Offset: pageInfo.Offset, - Sort: pageInfo.Sort, + Sort: pageInfo.GetSort(defaultSort), Filter: filters, } diff --git a/backend/internal/entity/stream/methods.go b/backend/internal/entity/stream/methods.go index c9cb259..d70262b 100644 --- a/backend/internal/entity/stream/methods.go +++ b/backend/internal/entity/stream/methods.go @@ -40,7 +40,7 @@ func List(pageInfo model.PageInfo, filters []model.Filter) (entity.ListResponse, Total: totalRows, Limit: pageInfo.Limit, Offset: pageInfo.Offset, - Sort: pageInfo.Sort, + Sort: pageInfo.GetSort(defaultSort), Filter: filters, } diff --git a/backend/internal/entity/upstream/methods.go b/backend/internal/entity/upstream/methods.go index d1a5f64..f885964 100644 --- a/backend/internal/entity/upstream/methods.go +++ b/backend/internal/entity/upstream/methods.go @@ -46,7 +46,7 @@ func List(pageInfo model.PageInfo, filters []model.Filter, expand []string) (ent Total: totalRows, Limit: pageInfo.Limit, Offset: pageInfo.Offset, - Sort: pageInfo.Sort, + Sort: pageInfo.GetSort(defaultSort), Filter: filters, } diff --git a/backend/internal/entity/upstreamserver/methods.go b/backend/internal/entity/upstreamserver/methods.go index 1ffe309..eaf1057 100644 --- a/backend/internal/entity/upstreamserver/methods.go +++ b/backend/internal/entity/upstreamserver/methods.go @@ -49,7 +49,7 @@ func List(pageInfo model.PageInfo, filters []model.Filter) (entity.ListResponse, Total: totalRows, Limit: pageInfo.Limit, Offset: pageInfo.Offset, - Sort: pageInfo.Sort, + Sort: pageInfo.GetSort(defaultSort), Filter: filters, } diff --git a/backend/internal/entity/user/methods.go b/backend/internal/entity/user/methods.go index 03b097b..8c1099e 100644 --- a/backend/internal/entity/user/methods.go +++ b/backend/internal/entity/user/methods.go @@ -73,7 +73,7 @@ func List(pageInfo model.PageInfo, filters []model.Filter, expand []string) (ent Total: totalRows, Limit: pageInfo.Limit, Offset: pageInfo.Offset, - Sort: pageInfo.Sort, + Sort: pageInfo.GetSort(defaultSort), Filter: filters, } diff --git a/backend/internal/model/pageinfo.go b/backend/internal/model/pageinfo.go index eb51d87..feb9738 100644 --- a/backend/internal/model/pageinfo.go +++ b/backend/internal/model/pageinfo.go @@ -14,3 +14,11 @@ type Sort struct { Field string `json:"field"` Direction string `json:"direction"` } + +// TableName overrides the table name used by gorm +func (p *PageInfo) GetSort(def Sort) []Sort { + if p.Sort == nil { + return []Sort{def} + } + return p.Sort +}