package presenter import ( "encoding/json" "io" "time" "gitea.oblak.solutions/dimitar/gitFlow/pkg/status" ) // JSONFormatter renders the scan result as indented JSON for scripting. type JSONFormatter struct{} // Format implements Formatter. func (j *JSONFormatter) Format(w io.Writer, result status.ScanResult) error { doc := struct { ScannedAt time.Time `json:"scanned_at"` ParentDir string `json:"parent_dir"` Repos []status.RepoInfo `json:"repos"` Summary status.Summary `json:"summary"` }{ ScannedAt: result.ScannedAt, ParentDir: result.ParentDir, Repos: result.Repos, Summary: result.Summary(), } enc := json.NewEncoder(w) enc.SetIndent("", " ") return enc.Encode(doc) }