Files
LazyPM/pkg/web/web.go
Robin Olsen 0dcfe3989d refine architecture
change module name to repo
2026-02-02 11:22:20 +01:00

48 lines
974 B
Go

package web
import (
"github.com/LazyBachelor/LazyPM/internal/service"
"github.com/LazyBachelor/LazyPM/pkg/web/handler"
"github.com/LazyBachelor/LazyPM/pkg/web/routes"
"github.com/LazyBachelor/LazyPM/pkg/web/server"
"context"
"embed"
"fmt"
"github.com/a-h/templ"
)
type WebConfig = service.Config
//go:embed assets/*
var assets embed.FS
func Run(ctx context.Context, config WebConfig) error {
svc, cleanup, err := service.NewServices(ctx, config)
if err != nil {
return err
}
defer cleanup()
handler := handler.NewIssuesHandler(svc)
server := server.NewServer(server.Server{
Address: config.WebAddress,
Assets: assets,
Services: svc,
Routes: []server.Route{
{Pattern: "/", Handeler: templ.Handler(routes.Index())},
{Pattern: "/issues", Handeler: handler.HandleGetAllIssues()},
},
})
fmt.Printf("Starting web server on %s...\n", config.WebAddress)
if err := server.ListenAndServe(); err != nil {
return err
}
return nil
}