Follow the checker-sdk-go interface consolidation: reporter methods now take sdk.ReportContext and read the payload via ctx.Data() instead of the raw json.RawMessage parameter. Backed by the same underlying logic — this is a signature migration. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
29 lines
1,001 B
Go
29 lines
1,001 B
Go
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))
|
|
}
|