aboutsummaryrefslogtreecommitdiffhomepage
path: root/backend/admin/handler.go
diff options
context:
space:
mode:
authornsfisis <54318333+nsfisis@users.noreply.github.com>2026-02-24 21:55:01 +0900
committerGitHub <noreply@github.com>2026-02-24 21:55:01 +0900
commit6d85a8f97c8c9e086f2f9b8c71fd730bff12af07 (patch)
tree4771498620c1d13ad5caa882f880943529e07aa1 /backend/admin/handler.go
parentb3379e09c5e724ca0a755da10f8a4d33427b09bf (diff)
parent6a939257294655dd5c1b5ada323dfdc7dfc013f3 (diff)
downloadphperkaigi-2026-albatross-6d85a8f97c8c9e086f2f9b8c71fd730bff12af07.tar.gz
phperkaigi-2026-albatross-6d85a8f97c8c9e086f2f9b8c71fd730bff12af07.tar.zst
phperkaigi-2026-albatross-6d85a8f97c8c9e086f2f9b8c71fd730bff12af07.zip
Merge pull request #8 from nsfisis/claude/find-missing-admin-features-mHZoD
Display usernames in submission lists and details
Diffstat (limited to 'backend/admin/handler.go')
-rw-r--r--backend/admin/handler.go31
1 files changed, 28 insertions, 3 deletions
diff --git a/backend/admin/handler.go b/backend/admin/handler.go
index f115745..fcf85a3 100644
--- a/backend/admin/handler.go
+++ b/backend/admin/handler.go
@@ -530,16 +530,28 @@ func (h *Handler) getSubmissions(c echo.Context) error {
return echo.NewHTTPError(http.StatusBadRequest, "Invalid game_id")
}
- submissions, err := h.q.GetSubmissionsByGameID(c.Request().Context(), int32(gameID))
+ ctx := c.Request().Context()
+
+ submissions, err := h.q.GetSubmissionsByGameID(ctx, int32(gameID))
if err != nil {
return echo.NewHTTPError(http.StatusInternalServerError, err.Error())
}
+ userRows, err := h.q.ListUsers(ctx)
+ if err != nil {
+ return echo.NewHTTPError(http.StatusInternalServerError, err.Error())
+ }
+ usernameMap := make(map[int32]string, len(userRows))
+ for _, u := range userRows {
+ usernameMap[u.UserID] = u.Username
+ }
+
entries := make([]echo.Map, len(submissions))
for i, r := range submissions {
entries[i] = echo.Map{
"SubmissionID": r.SubmissionID,
"UserID": r.UserID,
+ "Username": usernameMap[r.UserID],
"Status": r.Status,
"CodeSize": r.CodeSize,
"CreatedAt": r.CreatedAt.Time.In(jst).Format("2006-01-02T15:04"),
@@ -565,7 +577,9 @@ func (h *Handler) getSubmissionDetail(c echo.Context) error {
return echo.NewHTTPError(http.StatusBadRequest, "Invalid submission_id")
}
- submission, err := h.q.GetSubmissionByID(c.Request().Context(), int32(submissionID))
+ ctx := c.Request().Context()
+
+ submission, err := h.q.GetSubmissionByID(ctx, int32(submissionID))
if err != nil {
if errors.Is(err, pgx.ErrNoRows) {
return echo.NewHTTPError(http.StatusNotFound)
@@ -573,7 +587,17 @@ func (h *Handler) getSubmissionDetail(c echo.Context) error {
return echo.NewHTTPError(http.StatusInternalServerError, err.Error())
}
- testcaseResultRows, err := h.q.GetTestcaseResultsBySubmissionID(c.Request().Context(), int32(submissionID))
+ var username string
+ user, err := h.q.GetUserByID(ctx, submission.UserID)
+ if err != nil {
+ if !errors.Is(err, pgx.ErrNoRows) {
+ return echo.NewHTTPError(http.StatusInternalServerError, err.Error())
+ }
+ } else {
+ username = user.Username
+ }
+
+ testcaseResultRows, err := h.q.GetTestcaseResultsBySubmissionID(ctx, int32(submissionID))
if err != nil {
return echo.NewHTTPError(http.StatusInternalServerError, err.Error())
}
@@ -596,6 +620,7 @@ func (h *Handler) getSubmissionDetail(c echo.Context) error {
"Submission": echo.Map{
"SubmissionID": submission.SubmissionID,
"UserID": submission.UserID,
+ "Username": username,
"Status": submission.Status,
"CodeSize": submission.CodeSize,
"CreatedAt": submission.CreatedAt.Time.In(jst).Format("2006-01-02T15:04"),