package api import ( "database/sql" "net/http" "gitea.konchin.com/ytshih/inp2025/game/backend/middlewares" "github.com/uptrace/bunrouter" ) type GetUserOutput struct { Username string `json:"username"` } // GetUser // // @Accept json // @Param username query string true "Username to be queried" // @Success 200 // @Failure 400 // @Router /api/user [get] func (self *Handlers) GetUser( w http.ResponseWriter, req bunrouter.Request, ) error { ctx := req.Context() username := req.URL.Query().Get("username") if username == "" { return middlewares.HTTPError{ StatusCode: http.StatusBadRequest, Message: "must provide username", } } user, err := self.db.GetUser(ctx, username) if err != nil { if err == sql.ErrNoRows { return middlewares.HTTPError{ StatusCode: http.StatusNotFound, Message: "user not exist", OriginError: err, } } return middlewares.HTTPError{ StatusCode: http.StatusInternalServerError, Message: "failed to get user", OriginError: err, } } return bunrouter.JSON(w, GetUserOutput{ Username: user.Username, }) }