go-pass-gen/api/server.go
2022-06-08 23:42:38 +02:00

37 lines
919 B
Go

package api
import (
"net/http"
"github.com/go-chi/chi/v5"
"github.com/go-chi/chi/v5/middleware"
"github.com/go-chi/cors"
)
type Server struct {
Router *chi.Mux
}
func New() *Server {
s := &Server{Router: chi.NewRouter()}
s.Router.Use(middleware.Logger)
s.Router.Use(cors.Handler(cors.Options{
AllowedOrigins: []string{"https://*", "http://*"},
AllowedMethods: []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"},
AllowedHeaders: []string{"Accept", "Authorization", "Content-Type", "X-CSRF-Token"},
ExposedHeaders: []string{"Link"},
AllowCredentials: false,
MaxAge: 300, // Maximum value not ignored by any of major browsers
}))
s.routes()
return s
}
// ServeHTTP implements Handler for Server
func (s Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
s.Router.ServeHTTP(w, r)
}
func (s Server) Start(port string) error {
return http.ListenAndServe(port, s)
}