package web import ( "fmt" "log" "net/http" "status/config" "status/storage" "status/web/handler" "status/web/session" ) //func httpToHTTPSHandler() *http.ServeMux { // handleRedirect := func(w http.ResponseWriter, r *http.Request) { // newURI := "https://" + r.Host + r.URL.String() // http.Redirect(w, r, newURI, http.StatusFound) // } // mux := &http.ServeMux{} // mux.HandleFunc("/", handleRedirect) // return mux //} func Serve(data *storage.Storage, cfg *config.Config) error { var err error sess := session.New(cfg.SessionKey, data) s, err := handler.New(cfg, sess, data) if err != nil { log.Fatal(err) } //switch cfg.Env { //case "PROD": // go func() { // fmt.Printf("Starting HTTP server on :443\n") // err := http.ListenAndServeTLS(":443", cfg.CertFile, cfg.KeyFile, s) // if err != nil { // log.Fatalf("httpsSrv.ListendAndServeTLS() failed with %s", err) // } // }() // fmt.Printf("Starting HTTP to HTTPS server on :80\n") // err = http.ListenAndServe(":80", httpToHTTPSHandler()) // break //default: fmt.Printf("Starting HTTP server on port 8000\n") err = http.ListenAndServe(":8000", s) //} return err }