feat: add progression readiness api

This commit is contained in:
user
2026-04-26 16:39:19 +09:00
parent 600acf7303
commit a413f1ef15
16 changed files with 637 additions and 15 deletions

View File

@@ -0,0 +1,46 @@
package httpapi
import (
"errors"
"net/http"
"tutor/internal/learnermemory"
)
func (h Handler) getReadinessMap(w http.ResponseWriter, r *http.Request) {
if h.progress == nil {
writeError(w, http.StatusNotFound, "progression not configured")
return
}
readiness, err := h.progress.ReadinessMap(r.PathValue("userID"))
if errors.Is(err, learnermemory.ErrProfileNotFound) {
writeError(w, http.StatusNotFound, "learner memory not found")
return
}
if err != nil {
writeError(w, http.StatusBadRequest, err.Error())
return
}
writeJSON(w, http.StatusOK, readiness)
}
func (h Handler) getNextChallenge(w http.ResponseWriter, r *http.Request) {
if h.progress == nil {
writeError(w, http.StatusNotFound, "progression not configured")
return
}
challenge, err := h.progress.NextChallenge(r.PathValue("userID"))
if errors.Is(err, learnermemory.ErrProfileNotFound) {
writeError(w, http.StatusNotFound, "learner memory not found")
return
}
if err != nil {
writeError(w, http.StatusBadRequest, err.Error())
return
}
writeJSON(w, http.StatusOK, challenge)
}