diff --git a/backend/internal/api/router.go b/backend/internal/api/router.go index 2ef13e15..f08fc936 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 f86d9bb8..650aeb09 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 676135fe..69224bbf 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 47b40f1d..d3f911ef 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 95f037ed..b0081565 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 6769ed8b..d4dd9559 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 931f346f..5c51dd2f 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 b4d6811f..4f38ce50 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 082c7266..4886c1ff 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 c9cb259a..d70262bf 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 d1a5f643..f8859646 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 1ffe309b..eaf1057b 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 03b097b5..8c1099e5 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 eb51d876..feb9738c 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 +}