func()

in internal/server/server.go [289:319]


func (s *IndexServer) handleTruncate() http.HandlerFunc {
	route := "truncate"

	type response struct {
		Success bool
	}

	return func(w http.ResponseWriter, r *http.Request) {
		if err := s.IndexingLock.LockAll(); err != nil {
			s.respondWithError(w, r, route, err, http.StatusLocked)

			return
		}
		defer s.IndexingLock.UnlockAll()

		fc := file_cleaner.NewFileCleaner(s.IndexBuilder.GetIndexDir(), s.IndexingLock)

		if err := fc.Truncate(); err != nil {
			err = fmt.Errorf("failed to empty indexDir: %v with error: %w", s.IndexBuilder.GetIndexDir(), err)

			s.respondWithError(w, r, route, err, http.StatusInternalServerError)
			return
		}

		resp := response{
			Success: true,
		}

		s.respondWith(w, r, route, resp)
	}
}