aboutsummaryrefslogtreecommitdiffhomepage
path: root/backend/gen/api/handler_wrapper_gen.go
diff options
context:
space:
mode:
authorClaude <noreply@anthropic.com>2026-02-20 17:53:55 +0000
committerClaude <noreply@anthropic.com>2026-02-20 17:53:55 +0000
commit4af93cae1ca54ad7c9bc7eb4b56c010f55c4c72d (patch)
tree804f0aee031469aad98a15cf8307cc9f0794c5bc /backend/gen/api/handler_wrapper_gen.go
parent00354d392a0bcddaac71fee7b6aae721e5747f59 (diff)
downloadphperkaigi-2026-albatross-4af93cae1ca54ad7c9bc7eb4b56c010f55c4c72d.tar.gz
phperkaigi-2026-albatross-4af93cae1ca54ad7c9bc7eb4b56c010f55c4c72d.tar.zst
phperkaigi-2026-albatross-4af93cae1ca54ad7c9bc7eb4b56c010f55c4c72d.zip
feat: allow viewing/spectating games without login
Make watch, ranking, game list, and tournament endpoints accessible without authentication. Unauthenticated users can browse games and spectate from the index page, while play/submit/preview still require login. https://claude.ai/code/session_019j9tNcnLsLz15e1qtbmeqe
Diffstat (limited to 'backend/gen/api/handler_wrapper_gen.go')
-rw-r--r--backend/gen/api/handler_wrapper_gen.go15
1 files changed, 14 insertions, 1 deletions
diff --git a/backend/gen/api/handler_wrapper_gen.go b/backend/gen/api/handler_wrapper_gen.go
index e3e56c1..982e191 100644
--- a/backend/gen/api/handler_wrapper_gen.go
+++ b/backend/gen/api/handler_wrapper_gen.go
@@ -61,16 +61,26 @@ func main() {
}
slices.Sort(methods)
+ loginOptionalMethods := map[string]bool{
+ "GetGames": true,
+ "GetGame": true,
+ "GetGameWatchLatestStates": true,
+ "GetGameWatchRanking": true,
+ "GetTournament": true,
+ }
+
type TemplateParameter struct {
Name string
RequiresLogin bool
+ LoginOptional bool
RequiresAdminRole bool
}
templateParameters := make([]TemplateParameter, len(methods))
for i, method := range methods {
templateParameters[i] = TemplateParameter{
Name: method,
- RequiresLogin: method != "PostLogin",
+ RequiresLogin: method != "PostLogin" && !loginOptionalMethods[method],
+ LoginOptional: loginOptionalMethods[method],
RequiresAdminRole: strings.Contains(method, "Admin"),
}
}
@@ -144,6 +154,9 @@ func NewHandler(queries db.Querier, txm db.TxManager, hub GameHubInterface, auth
}
{{ end -}}
return h.impl.{{ .Name }}(ctx, request, user)
+ {{ else if .LoginOptional -}}
+ user, _ := GetUserFromContext(ctx)
+ return h.impl.{{ .Name }}(ctx, request, user)
{{ else -}}
return h.impl.{{ .Name }}(ctx, request)
{{ end -}}