package legal import ( "context" "net/http" "github.com/FAU-CDI/wisski-distillery/internal/cli" "github.com/FAU-CDI/wisski-distillery/internal/dis/component" "github.com/FAU-CDI/wisski-distillery/internal/dis/component/control" "github.com/FAU-CDI/wisski-distillery/internal/dis/component/control/static" "github.com/FAU-CDI/wisski-distillery/internal/dis/component/control/static/custom" _ "embed" ) type Legal struct { component.Base Dependencies struct { Static *static.Static Custom *custom.Custom } } var ( _ component.Routeable = (*Legal)(nil) ) //go:embed "legal.html" var legalHTML []byte var legalTemplate = custom.Parse[legalContext]("legal.html", legalHTML, static.AssetsDefault) type legalContext struct { custom.BaseContext LegalNotices string CSRFCookie string SessionCookie string AssetsDisclaimer string } func (legal *Legal) Routes() component.Routes { return component.Routes{ Prefix: "/legal/", Exact: true, CSRF: false, } } func (legal *Legal) HandleRoute(ctx context.Context, route string) (http.Handler, error) { tpl := legalTemplate.Prepare(legal.Dependencies.Custom, custom.BaseContextGaps{ Crumbs: []component.MenuItem{ {Title: "Legal", Path: "/legal/"}, }, }) return tpl.HTMLHandler(func(r *http.Request) (lc legalContext, err error) { lc.LegalNotices = cli.LegalNotices lc.CSRFCookie = control.CSRFCookie lc.SessionCookie = control.SessionCookie lc.AssetsDisclaimer = static.AssetsDisclaimer return }), nil }