65 lines
1.2 KiB
Go

package infrastructure
import (
"fmt"
"log"
"net/http"
"os"
"strconv"
"time"
)
type Server struct {
addr string
http.Server
port int
}
var (
env = os.Getenv("HTMX_APP_ENV")
)
func NewServer() *Server {
const (
addr = "0.0.0.0"
)
var port int
if env == "production" {
port = 8080
} else {
port = 8080
}
return &Server{
addr,
http.Server{
Addr: addr + ":" + strconv.Itoa(port),
Handler: GetRouter(),
DisableGeneralOptionsHandler: false,
TLSConfig: nil,
ReadTimeout: 5 * time.Second,
ReadHeaderTimeout: 0,
WriteTimeout: 5 * time.Second,
IdleTimeout: 0,
MaxHeaderBytes: 0,
TLSNextProto: nil,
ConnState: nil,
ErrorLog: nil,
BaseContext: nil,
ConnContext: nil,
},
port,
}
}
func (s *Server) Serve() {
fmt.Printf("Starting.\nListening at %s on port %s\n", s.addr, strconv.Itoa(s.port))
serverError := s.ListenAndServe()
if serverError != nil {
log.Fatal(serverError)
}
}