This commit is contained in:
2026-03-21 15:41:30 -04:00
parent 197a1577c2
commit ba919bbde4
19 changed files with 824 additions and 198 deletions

View File

@@ -280,6 +280,13 @@ type ImportResultsResponse struct {
// ImportType defines model for ImportType.
type ImportType string
// InfoResponse defines model for InfoResponse.
type InfoResponse struct {
RegistrationEnabled bool `json:"registration_enabled"`
SearchEnabled bool `json:"search_enabled"`
Version string `json:"version"`
}
// LeaderboardData defines model for LeaderboardData.
type LeaderboardData struct {
All []LeaderboardEntry `json:"all"`
@@ -290,8 +297,8 @@ type LeaderboardData struct {
// LeaderboardEntry defines model for LeaderboardEntry.
type LeaderboardEntry struct {
UserId string `json:"user_id"`
Value int64 `json:"value"`
UserId string `json:"user_id"`
Value float64 `json:"value"`
}
// LogEntry defines model for LogEntry.
@@ -598,6 +605,9 @@ type ServerInterface interface {
// Get user streaks
// (GET /home/streaks)
GetStreaks(w http.ResponseWriter, r *http.Request)
// Get server information
// (GET /info)
GetInfo(w http.ResponseWriter, r *http.Request)
// List progress records
// (GET /progress)
GetProgressList(w http.ResponseWriter, r *http.Request, params GetProgressListParams)
@@ -1174,6 +1184,20 @@ func (siw *ServerInterfaceWrapper) GetStreaks(w http.ResponseWriter, r *http.Req
handler.ServeHTTP(w, r)
}
// GetInfo operation middleware
func (siw *ServerInterfaceWrapper) GetInfo(w http.ResponseWriter, r *http.Request) {
handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
siw.Handler.GetInfo(w, r)
}))
for _, middleware := range siw.HandlerMiddlewares {
handler = middleware(handler)
}
handler.ServeHTTP(w, r)
}
// GetProgressList operation middleware
func (siw *ServerInterfaceWrapper) GetProgressList(w http.ResponseWriter, r *http.Request) {
@@ -1510,6 +1534,7 @@ func HandlerWithOptions(si ServerInterface, options StdHTTPServerOptions) http.H
m.HandleFunc("GET "+options.BaseURL+"/home/graph", wrapper.GetGraphData)
m.HandleFunc("GET "+options.BaseURL+"/home/statistics", wrapper.GetUserStatistics)
m.HandleFunc("GET "+options.BaseURL+"/home/streaks", wrapper.GetStreaks)
m.HandleFunc("GET "+options.BaseURL+"/info", wrapper.GetInfo)
m.HandleFunc("GET "+options.BaseURL+"/progress", wrapper.GetProgressList)
m.HandleFunc("GET "+options.BaseURL+"/progress/{id}", wrapper.GetProgress)
m.HandleFunc("GET "+options.BaseURL+"/search", wrapper.GetSearch)
@@ -2350,6 +2375,31 @@ func (response GetStreaks500JSONResponse) VisitGetStreaksResponse(w http.Respons
return json.NewEncoder(w).Encode(response)
}
type GetInfoRequestObject struct {
}
type GetInfoResponseObject interface {
VisitGetInfoResponse(w http.ResponseWriter) error
}
type GetInfo200JSONResponse InfoResponse
func (response GetInfo200JSONResponse) VisitGetInfoResponse(w http.ResponseWriter) error {
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(200)
return json.NewEncoder(w).Encode(response)
}
type GetInfo500JSONResponse ErrorResponse
func (response GetInfo500JSONResponse) VisitGetInfoResponse(w http.ResponseWriter) error {
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(500)
return json.NewEncoder(w).Encode(response)
}
type GetProgressListRequestObject struct {
Params GetProgressListParams
}
@@ -2650,6 +2700,9 @@ type StrictServerInterface interface {
// Get user streaks
// (GET /home/streaks)
GetStreaks(ctx context.Context, request GetStreaksRequestObject) (GetStreaksResponseObject, error)
// Get server information
// (GET /info)
GetInfo(ctx context.Context, request GetInfoRequestObject) (GetInfoResponseObject, error)
// List progress records
// (GET /progress)
GetProgressList(ctx context.Context, request GetProgressListRequestObject) (GetProgressListResponseObject, error)
@@ -3260,6 +3313,30 @@ func (sh *strictHandler) GetStreaks(w http.ResponseWriter, r *http.Request) {
}
}
// GetInfo operation middleware
func (sh *strictHandler) GetInfo(w http.ResponseWriter, r *http.Request) {
var request GetInfoRequestObject
handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) {
return sh.ssi.GetInfo(ctx, request.(GetInfoRequestObject))
}
for _, middleware := range sh.middlewares {
handler = middleware(handler, "GetInfo")
}
response, err := handler(r.Context(), w, r, request)
if err != nil {
sh.options.ResponseErrorHandlerFunc(w, r, err)
} else if validResponse, ok := response.(GetInfoResponseObject); ok {
if err := validResponse.VisitGetInfoResponse(w); err != nil {
sh.options.ResponseErrorHandlerFunc(w, r, err)
}
} else if response != nil {
sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response))
}
}
// GetProgressList operation middleware
func (sh *strictHandler) GetProgressList(w http.ResponseWriter, r *http.Request, params GetProgressListParams) {
var request GetProgressListRequestObject