package main import ( "log" "net/http" "gitea.mrixs.me/minecraft-platform/backend/internal/api" "gitea.mrixs.me/minecraft-platform/backend/internal/core" "gitea.mrixs.me/minecraft-platform/backend/internal/database" "github.com/go-chi/chi/v5" "github.comcom/go-chi/chi/v5/middleware" ) func main() { // Инициализируем соединение с БД db := database.Connect() defer db.Close() // --- Собираем наши зависимости (Dependency Injection) --- userRepo := &database.UserRepository{DB: db} // Сервисы userService := &core.UserService{Repo: userRepo} authService := &core.AuthService{UserRepo: userRepo} // Новый сервис // Хендлеры userHandler := &api.UserHandler{Service: userService} authHandler := &api.AuthHandler{Service: authService} // Новый хендлер // --- Настраиваем роутер --- r := chi.NewRouter() r.Use(middleware.Logger) r.Use(middleware.Recoverer) // Группа маршрутов для Web API r.Route("/api", func(r chi.Router) { r.Post("/register", userHandler.Register) }) // Группа маршрутов для Yggdrasil API r.Route("/authserver", func(r chi.Router) { r.Post("/authenticate", authHandler.Authenticate) // Здесь будут другие эндпоинты: refresh, validate, signout, invalidate }) // Маршрут для проверки, что сервер жив r.Get("/", func(w http.ResponseWriter, r *http.Request) { w.Write([]byte("Backend server is running!")) }) log.Println("Starting backend server on :8080") if err := http.ListenAndServe(":8080", r); err != nil { log.Fatalf("Failed to start server: %v", err) } }