package rest import ( "context" "fmt" "net/http" "git.intra.yksa.space/gsn/predictor/internal/pkg/log" "git.intra.yksa.space/gsn/predictor/internal/transport/middleware" handler "git.intra.yksa.space/gsn/predictor/internal/transport/rest/handler" api "git.intra.yksa.space/gsn/predictor/pkg/rest" "github.com/rs/cors" ) type Transport struct { cfg *Config srv *api.Server handler *handler.Handler } func New(handler *handler.Handler, cfg *Config) (*Transport, error) { srv, err := api.NewServer( handler, api.WithMiddleware(middleware.Logging()), ) if err != nil { return nil, err } return &Transport{ srv: srv, cfg: cfg, handler: handler, }, nil } func (t *Transport) Run() { log.Ctx(context.Background()).Info("started") mux := http.NewServeMux() mux.Handle("/", t.srv) cors.AllowAll().Handler(mux) if err := http.ListenAndServe(fmt.Sprintf(":%d", t.cfg.Port), t.srv); err != nil { panic(err) } }