package caldav import ( "encoding/json" "fmt" sdk "git.happydns.org/checker-sdk-go/checker" "git.happydns.org/checker-dav/internal/dav" ) // GetHTMLReport implements sdk.CheckerHTMLReporter on *caldavProvider. // // Delegated to the shared renderer in internal/dav so CalDAV and CardDAV // produce visually identical reports; the only differences are the title // and the set of phases (CalDAV includes Scheduling). // // Downstream TLS probes published for the endpoints we discovered are read // via ctx.Related(dav.TLSRelatedKey) and folded into the report (callouts + // dedicated TLS phase), per // happydomain3/docs/checker-discovery-endpoint.md. func (p *caldavProvider) GetHTMLReport(ctx sdk.ReportContext) (string, error) { var d dav.Observation if err := json.Unmarshal(ctx.Data(), &d); err != nil { return "", fmt.Errorf("failed to unmarshal caldav report: %w", err) } d.Kind = dav.KindCalDAV return dav.RenderReport(&d, "CalDAV Server", ctx.Related(dav.TLSRelatedKey)) }