diff --git a/backend/internal/api/router.go b/backend/internal/api/router.go index 2ef13e159..f08fc9363 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 f86d9bb84..650aeb093 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 676135fed..69224bbfa 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 47b40f1d6..d3f911ef0 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 95f037ede..b00815652 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 6769ed8b8..d4dd9559a 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 931f346f2..5c51dd2f9 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 b4d6811f4..4f38ce50f 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 082c72666..4886c1ff6 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 c9cb259af..d70262bf4 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 d1a5f6437..f88596461 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 1ffe309bc..eaf1057b3 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 03b097b54..8c1099e50 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 eb51d8763..feb9738c3 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 +}