Imports #
"advent2024/pkg/solver"
"advent2024/web/middleware"
"advent2024/web/weberrors"
"context"
"encoding/base64"
"encoding/json"
"errors"
"fmt"
"io"
"net/http"
"strconv"
"strings"
"advent2024/pkg/solver"
"advent2024/web/middleware"
"advent2024/web/weberrors"
"context"
"encoding/base64"
"encoding/json"
"errors"
"fmt"
"io"
"net/http"
"strconv"
"strings"
API Request
type SolveRequest struct {
Input string `json:"input" format:"base64" example:"MyAgIDQKNCAgIDMKMiAgIDUKMSAgIDMKMyAgIDkKMyAgIDMK"`
}
API Response
type SolveResult struct {
Output string `json:"output"`
}
Solve godoc @Summary Solver @Description Provides solution for the day and part based on input @Tags solver @Accepts json @Produces json @Security @Param day path string true "Day, format d[0-9]*" example(d1) @Param part path int true "Problem part" example(1) @Param input body SolveRequest true "Solve Base64 encoded input" @Param Authorization header string true "Bearer format, prefix with Bearer" @Success 200 {object} SolveResult "Result" @Failure 400 {object} weberrors.AoCError "Bad Request" @Failure 401 {object} weberrors.AoCError "Unathorized" @Failure 404 {object} weberrors.AoCError "Solver for the day not found" @Failure 429 {object} weberrors.AoCError "Request was Rate limited" @Failure 500 {object} weberrors.AoCError "Internal Server Error" @Failure 504 {object} weberrors.AoCError "Request took too long to compute" @Router /solvers/{day}/{part} [post] @Security OAuth2AccessCode [read] Handles solve API endpoint
func Solve(w http.ResponseWriter, r *http.Request)
SolverListing godoc @Summary Solve List @Description Lists days which the solver can solve @Tags solverList @Accepts json @Produces json @Param Authorization header string true "Bearer format, prefix with Bearer" @Success 200 {array} solver.RegistryItemPublic "Result" @Failure 401 {object} weberrors.AoCError "Unathorized" @Failure 429 {object} weberrors.AoCError "Request was Rate limited" @Failure 500 {object} weberrors.AoCError "Internal Server Error" @Router /solvers [GET] @Security OAuth2AccessCode [read] Handles solver listing API endpoint
func SolverListing(w http.ResponseWriter, r *http.Request)