first working version

This commit is contained in:
2025-10-28 19:22:21 +01:00
parent 9406ffda01
commit 4a3fe068a3
9 changed files with 400 additions and 55 deletions

View File

@@ -11,20 +11,24 @@ import (
"net/http"
"runtime"
cronruntime "mirror-sync/cmd/server/core/runtime"
"github.com/go-chi/chi/v5"
"github.com/go-chi/chi/v5/middleware"
)
type (
HTTPServer struct {
Server *http.Server
data *storage.Repository
Server *http.Server
data *storage.Repository
scheduler *cronruntime.Scheduler
}
)
func NewServer(data *storage.Repository, port int) *HTTPServer {
func NewServer(data *storage.Repository, scheduler *cronruntime.Scheduler, port int) *HTTPServer {
s := &HTTPServer{
data: data,
data: data,
scheduler: scheduler,
}
router := chi.NewRouter()
router.NotFound(func(writer http.ResponseWriter, request *http.Request) {
@@ -90,6 +94,13 @@ func (s *HTTPServer) ProjectPostHandler(w http.ResponseWriter, r *http.Request)
return
}
s.scheduler.Remove(pr)
if err := s.scheduler.Add(pr); err != nil {
slog.Error("failed to run project", "err", err)
internalServerError(err, w, r)
return
}
w.WriteHeader(201)
}