package server import ( "fmt" "net/http" "os" "strconv" "time" "github.com/gorilla/sessions" _ "github.com/joho/godotenv/autoload" "gothtest/internal/auth" "gothtest/internal/database" "gothtest/internal/session" ) type Server struct { port int db database.Service store sessions.Store } func NewServer() *http.Server { port, _ := strconv.Atoi(os.Getenv("PORT")) NewServer := &Server{ port: port, db: database.New(), store: session.New(), } auth.NewAuth(&NewServer.store) // Declare Server config server := &http.Server{ Addr: fmt.Sprintf(":%d", NewServer.port), Handler: NewServer.RegisterRoutes(), IdleTimeout: time.Minute, ReadTimeout: 10 * time.Second, WriteTimeout: 30 * time.Second, } return server }