diff --git a/checker/interactive.go b/checker/interactive.go deleted file mode 100644 index 4c00bd5..0000000 --- a/checker/interactive.go +++ /dev/null @@ -1,48 +0,0 @@ -package checker - -import ( - "errors" - "net/http" - "strings" - - sdk "git.happydns.org/checker-sdk-go/checker" -) - -// RenderForm implements sdk.CheckerInteractive. -func (p *matrixProvider) RenderForm() []sdk.CheckerOptionField { - return []sdk.CheckerOptionField{ - { - Id: "serviceDomain", - Type: "string", - Label: "Matrix domain", - Placeholder: "matrix.org", - Required: true, - }, - { - Id: "federationTesterServer", - Type: "string", - Label: "Federation Tester Server", - Placeholder: "https://federationtester.matrix.org/api/report?server_name=%s", - Default: "https://federationtester.matrix.org/api/report?server_name=%s", - Description: "URL template of the federation tester API; %s is replaced by the domain.", - }, - } -} - -// ParseForm implements sdk.CheckerInteractive. -func (p *matrixProvider) ParseForm(r *http.Request) (sdk.CheckerOptions, error) { - domain := strings.TrimSpace(r.FormValue("serviceDomain")) - if domain == "" { - return nil, errors.New("Matrix domain is required") - } - - opts := sdk.CheckerOptions{ - "serviceDomain": domain, - } - - if tester := strings.TrimSpace(r.FormValue("federationTesterServer")); tester != "" { - opts["federationTesterServer"] = tester - } - - return opts, nil -} diff --git a/checker/report.go b/checker/report.go index 7952ae0..8066ae2 100644 --- a/checker/report.go +++ b/checker/report.go @@ -5,8 +5,6 @@ import ( "fmt" "html/template" "strings" - - sdk "git.happydns.org/checker-sdk-go/checker" ) // ── HTML report ─────────────────────────────────────────────────────────────── @@ -289,9 +287,9 @@ li { margin-bottom: .15rem; } ) // GetHTMLReport implements sdk.CheckerHTMLReporter. -func (p *matrixProvider) GetHTMLReport(ctx sdk.ReportContext) (string, error) { +func (p *matrixProvider) GetHTMLReport(raw json.RawMessage) (string, error) { var r MatrixFederationData - if err := json.Unmarshal(ctx.Data(), &r); err != nil { + if err := json.Unmarshal(raw, &r); err != nil { return "", fmt.Errorf("failed to unmarshal matrix report: %w", err) } diff --git a/checker/rule.go b/checker/rule.go index 8184137..5132325 100644 --- a/checker/rule.go +++ b/checker/rule.go @@ -27,14 +27,14 @@ func (r *matrixRule) ValidateOptions(opts sdk.CheckerOptions) error { return nil } -func (r *matrixRule) Evaluate(ctx context.Context, obs sdk.ObservationGetter, opts sdk.CheckerOptions) []sdk.CheckState { +func (r *matrixRule) Evaluate(ctx context.Context, obs sdk.ObservationGetter, opts sdk.CheckerOptions) sdk.CheckState { var data MatrixFederationData if err := obs.Get(ctx, ObservationKeyMatrix, &data); err != nil { - return []sdk.CheckState{{ + return sdk.CheckState{ Status: sdk.StatusError, Message: fmt.Sprintf("Failed to get Matrix federation data: %v", err), Code: "matrix_federation_error", - }} + } } domain, _ := opts["serviceDomain"].(string) @@ -42,14 +42,14 @@ func (r *matrixRule) Evaluate(ctx context.Context, obs sdk.ObservationGetter, op if data.FederationOK { version := strings.TrimSpace(data.Version.Name + " " + data.Version.Version) - return []sdk.CheckState{{ + return sdk.CheckState{ Status: sdk.StatusOK, Message: fmt.Sprintf("Running %s", version), Code: "matrix_federation_ok", Meta: map[string]any{ "version": version, }, - }} + } } var statusLine string @@ -73,9 +73,9 @@ func (r *matrixRule) Evaluate(ctx context.Context, obs sdk.ObservationGetter, op statusLine = fmt.Sprintf("Federation broken. Check https://federationtester.matrix.org/#%s", domain) } - return []sdk.CheckState{{ + return sdk.CheckState{ Status: sdk.StatusCrit, Message: statusLine, Code: "matrix_federation_fail", - }} + } } diff --git a/go.mod b/go.mod index 8c5c78c..28304e8 100644 --- a/go.mod +++ b/go.mod @@ -2,4 +2,4 @@ module git.happydns.org/checker-matrix go 1.25.0 -require git.happydns.org/checker-sdk-go v1.2.0 +require git.happydns.org/checker-sdk-go v0.0.1 diff --git a/go.sum b/go.sum index 272600a..5282be1 100644 --- a/go.sum +++ b/go.sum @@ -1,2 +1,2 @@ -git.happydns.org/checker-sdk-go v1.2.0 h1:v4MpKAz0W3PwP+bxx3pya8w893sVH5xTD1of1cc0TV8= -git.happydns.org/checker-sdk-go v1.2.0/go.mod h1:aNAcfYFfbhvH9kJhE0Njp5GX0dQbxdRB0rJ0KvSC5nI= +git.happydns.org/checker-sdk-go v0.0.1 h1:4RxCJr73HWKxjOyU/6NJMO8lXJmH0gMLA68EzTqLbQI= +git.happydns.org/checker-sdk-go v0.0.1/go.mod h1:aNAcfYFfbhvH9kJhE0Njp5GX0dQbxdRB0rJ0KvSC5nI=