learnlytics-go/templ/examples/counter/main.go
2025-03-20 12:35:13 +01:00

44 lines
988 B
Go

package main
import (
"fmt"
"net/http"
"os"
"time"
"github.com/a-h/templ/examples/counter/db"
"github.com/a-h/templ/examples/counter/handlers"
"github.com/a-h/templ/examples/counter/services"
"github.com/a-h/templ/examples/counter/session"
"golang.org/x/exp/slog"
)
func main() {
log := slog.New(slog.NewJSONHandler(os.Stderr, nil))
s, err := db.NewCountStore(os.Getenv("TABLE_NAME"), os.Getenv("AWS_REGION"))
if err != nil {
log.Error("failed to create store", slog.Any("error", err))
os.Exit(1)
}
cs := services.NewCount(log, s)
h := handlers.New(log, cs)
var secureFlag = true
if os.Getenv("SECURE_FLAG") == "false" {
secureFlag = false
}
// Add session middleware.
sh := session.NewMiddleware(h, session.WithSecure(secureFlag))
server := &http.Server{
Addr: "localhost:9000",
Handler: sh,
ReadTimeout: time.Second * 10,
WriteTimeout: time.Second * 10,
}
fmt.Printf("Listening on %v\n", server.Addr)
server.ListenAndServe()
}