Skip to content

Commit

Permalink
feat: hide registration button when disabled (#287)
Browse files Browse the repository at this point in the history
* add allow registration to API Summary

* code gen

* use env for troubleshooting

* disable registration toggle based on backend
  • Loading branch information
hay-kot committed Feb 15, 2023
1 parent dd349aa commit efd7069
Show file tree
Hide file tree
Showing 7 changed files with 27 additions and 14 deletions.
1 change: 1 addition & 0 deletions Taskfile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ version: "3"

env:
HBOX_STORAGE_SQLITE_URL: .data/homebox.db?_fk=1
HBOX_OPTIONS_ALLOW_REGISTRATION: true
UNSAFE_DISABLE_PASSWORD_PROJECTION: "yes_i_am_sure"
tasks:
setup:
Expand Down
24 changes: 13 additions & 11 deletions backend/app/api/handlers/v1/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,12 +44,13 @@ type (
}

ApiSummary struct {
Healthy bool `json:"health"`
Versions []string `json:"versions"`
Title string `json:"title"`
Message string `json:"message"`
Build Build `json:"build"`
Demo bool `json:"demo"`
Healthy bool `json:"health"`
Versions []string `json:"versions"`
Title string `json:"title"`
Message string `json:"message"`
Build Build `json:"build"`
Demo bool `json:"demo"`
AllowRegistration bool `json:"allowRegistration"`
}
)

Expand Down Expand Up @@ -82,11 +83,12 @@ func NewControllerV1(svc *services.AllServices, repos *repo.AllRepos, options ..
func (ctrl *V1Controller) HandleBase(ready ReadyFunc, build Build) server.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) error {
return server.Respond(w, http.StatusOK, ApiSummary{
Healthy: ready(),
Title: "Go API Template",
Message: "Welcome to the Go API Template Application!",
Build: build,
Demo: ctrl.isDemo,
Healthy: ready(),
Title: "Go API Template",
Message: "Welcome to the Go API Template Application!",
Build: build,
Demo: ctrl.isDemo,
AllowRegistration: ctrl.allowRegistration,
})
}
}
3 changes: 3 additions & 0 deletions backend/app/api/static/docs/docs.go
Original file line number Diff line number Diff line change
Expand Up @@ -2425,6 +2425,9 @@ const docTemplate = `{
"v1.ApiSummary": {
"type": "object",
"properties": {
"allowRegistration": {
"type": "boolean"
},
"build": {
"$ref": "#/definitions/v1.Build"
},
Expand Down
3 changes: 3 additions & 0 deletions backend/app/api/static/docs/swagger.json
Original file line number Diff line number Diff line change
Expand Up @@ -2417,6 +2417,9 @@
"v1.ApiSummary": {
"type": "object",
"properties": {
"allowRegistration": {
"type": "boolean"
},
"build": {
"$ref": "#/definitions/v1.Build"
},
Expand Down
2 changes: 2 additions & 0 deletions backend/app/api/static/docs/swagger.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -564,6 +564,8 @@ definitions:
type: object
v1.ApiSummary:
properties:
allowRegistration:
type: boolean
build:
$ref: '#/definitions/v1.Build'
demo:
Expand Down
1 change: 1 addition & 0 deletions frontend/lib/api/types/data-contracts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -335,6 +335,7 @@ export interface ActionAmountResult {
}

export interface ApiSummary {
allowRegistration: boolean;
build: Build;
demo: boolean;
health: boolean;
Expand Down
7 changes: 4 additions & 3 deletions frontend/pages/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,6 @@
toast.success("Logged in successfully");
// @ts-expect-error - expires is either a date or a string, need to figure out store typing
authStore.$patch({
token: data.token,
expires: data.expiresAt,
Expand Down Expand Up @@ -214,11 +213,13 @@
</Transition>
<div class="text-center mt-6">
<button
class="text-base-content text-lg hover:bg-primary hover:text-primary-content px-3 py-1 rounded-xl transition-colors duration-200"
v-if="status && status.allowRegistration"
class="btn text-base-content text-lg hover:bg-primary hover:text-primary-content transition-colors duration-200"
@click="() => toggleLogin()"
>
{{ registerForm ? "Already a User? Login" : "Not a User? Register" }}
{{ registerForm ? "Login" : "Register" }}
</button>
<p v-else class="text-base-content italic text-sm">Registration Disabled</p>
</div>
</div>
</div>
Expand Down

0 comments on commit efd7069

Please sign in to comment.