expose demo status to API

This commit is contained in:
Hayden 2022-10-12 12:38:17 -08:00
parent 64f7ff2e2f
commit 79f1456017
3 changed files with 10 additions and 8 deletions

View file

@ -44,7 +44,7 @@ func (a *app) newRouter(repos *repo.AllRepos) *chi.Mux {
v1Base := v1.BaseUrlFunc(prefix) v1Base := v1.BaseUrlFunc(prefix)
v1Ctrl := v1.NewControllerV1(a.services, v1Ctrl := v1.NewControllerV1(a.services,
v1.WithMaxUploadSize(a.conf.Web.MaxUploadSize), v1.WithMaxUploadSize(a.conf.Web.MaxUploadSize),
v1.WithDisablePasswordChange(a.conf.Demo), // Disable Password Change in Demo Mode v1.WithDemoStatus(a.conf.Demo), // Disable Password Change in Demo Mode
) )
r.Get(v1Base("/status"), v1Ctrl.HandleBase(func() bool { return true }, v1.Build{ r.Get(v1Base("/status"), v1Ctrl.HandleBase(func() bool { return true }, v1.Build{
Version: Version, Version: Version,

View file

@ -13,16 +13,16 @@ func WithMaxUploadSize(maxUploadSize int64) func(*V1Controller) {
} }
} }
func WithDisablePasswordChange(disablePasswordChange bool) func(*V1Controller) { func WithDemoStatus(demoStatus bool) func(*V1Controller) {
return func(ctrl *V1Controller) { return func(ctrl *V1Controller) {
ctrl.disablePasswordChange = disablePasswordChange ctrl.isDemo = demoStatus
} }
} }
type V1Controller struct { type V1Controller struct {
svc *services.AllServices svc *services.AllServices
maxUploadSize int64 maxUploadSize int64
disablePasswordChange bool isDemo bool
} }
type ( type (
@ -37,7 +37,8 @@ type (
Versions []string `json:"versions"` Versions []string `json:"versions"`
Title string `json:"title"` Title string `json:"title"`
Message string `json:"message"` Message string `json:"message"`
Build Build Build Build `json:"build"`
Demo bool `json:"demo"`
} }
) )
@ -73,6 +74,7 @@ func (ctrl *V1Controller) HandleBase(ready ReadyFunc, build Build) http.HandlerF
Title: "Go API Template", Title: "Go API Template",
Message: "Welcome to the Go API Template Application!", Message: "Welcome to the Go API Template Application!",
Build: build, Build: build,
Demo: ctrl.isDemo,
}) })
} }
} }

View file

@ -136,7 +136,7 @@ type (
// @Security Bearer // @Security Bearer
func (ctrl *V1Controller) HandleUserSelfChangePassword() http.HandlerFunc { func (ctrl *V1Controller) HandleUserSelfChangePassword() http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) { return func(w http.ResponseWriter, r *http.Request) {
if ctrl.disablePasswordChange { if ctrl.isDemo {
server.RespondError(w, http.StatusForbidden, nil) server.RespondError(w, http.StatusForbidden, nil)
return return
} }