in internal/server/server.go [82:123]
func (s *IndexServer) handleStatus() http.HandlerFunc {
route := "status"
type response struct {
Success bool
SHA string
}
return func(w http.ResponseWriter, r *http.Request) {
param := chi.URLParam(r, "id")
repoID, err := strconv.ParseUint(param, 10, 32)
if err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
return
}
idx := &indexer.Indexer{
IndexDir: s.IndexBuilder.GetIndexDir(),
ProjectID: uint32(repoID),
}
currentSHA, ok, err := idx.CurrentSHA()
if err != nil {
s.respondWithError(w, r, route, err, http.StatusInternalServerError)
return
}
if !ok {
s.respondWithStatus(w, r, route, http.StatusNotFound)
return
}
resp := response{
Success: true,
SHA: currentSHA,
}
s.respondWith(w, r, route, resp)
}
}