package views_api import ( "log" "net/http" "clintonambulance.com/calculate_negative_points/internal/api/middleware" "clintonambulance.com/calculate_negative_points/internal/api/requests/negative_points_processor" "clintonambulance.com/calculate_negative_points/internal/api/requests/users" "clintonambulance.com/calculate_negative_points/internal/config" "github.com/go-chi/chi/v5" "github.com/go-chi/cors" "github.com/swaggest/rest/nethttp" "github.com/swaggest/rest/web" "go.uber.org/zap" ) func MountInternalApiEndpoints(e *web.Service, config *config.ApplicationConfig, logger *zap.Logger) { e.Route("/api", func(r chi.Router) { r.Use(cors.Handler(cors.Options{ AllowedOrigins: []string{"http://localhost:3000"}, AllowedMethods: []string{"GET", "POST", "OPTIONS"}, AllowedHeaders: []string{"*"}, AllowCredentials: true, })) currentUserMiddlware, err := middleware.CurrentUserMiddleware(config) if err != nil { log.Fatal(err) } r.Use(currentUserMiddlware) r.Method(http.MethodGet, "/users/current", nethttp.NewHandler(users.GetCurrentUser())) r.Method(http.MethodPost, "/process", nethttp.NewHandler(negative_points_processor.NegativePointsProcessor(config, logger))) r.With(middleware.Logout(config)).Method(http.MethodDelete, "/users/current", nethttp.NewHandler(users.Logout())) }) }