// internal/server/server.go
package server
import (
"context"
"fmt"
"net/http"
internallog "envoy-control-plane/internal/log"
"envoy-control-plane/internal/pkg/api"
)
// RunRESTServer starts the REST API server with appropriate middleware.
func RunRESTServer(ctx context.Context, mux *http.ServeMux, restPort uint, webrootPath string, enableCertIssuance bool) error {
log := internallog.LogFromContext(ctx)
corsHandler := api.CORS(mux)
restAddr := fmt.Sprintf(":%d", restPort)
log.Infof("starting REST API server on %s", restAddr)
if enableCertIssuance {
log.Infof("ACME challenge path configured: %s/ -> %s", api.ACME_CALLENGE_WEB_PATH, webrootPath)
}
if err := http.ListenAndServe(restAddr, corsHandler); err != nil {
return fmt.Errorf("REST server error: %w", err)
}
return nil
}
// NOTE: The function to start the gRPC xDS server (internal.RunServer) remains in your existing 'internal' package.