sg/internal/result/presenter/format.go (33 lines of code) (raw):
package presenter
import (
"strings"
"github.com/Azure/ShieldGuard/sg/internal/result"
)
const (
FormatJSON = "json"
FormatText = "text"
)
// AvailableFormats book-keeps the available formats.
var AvailableFormats = map[string]struct{}{
FormatJSON: {},
FormatText: {},
}
// AvailableFormatsHelp returns help message for available formats.
func AvailableFormatsHelp() string {
rv := make([]string, 0, len(AvailableFormats))
for format := range AvailableFormats {
rv = append(rv, string(format))
}
return strings.Join(rv, ", ")
}
// QueryResultsList presents a list of query results.
func QueryResultsList(
format string,
queryResultsList []result.QueryResults,
) WriteQueryResultTo {
switch strings.ToLower(format) {
case FormatJSON:
return JSON(queryResultsList)
case FormatText:
return Text(queryResultsList)
default:
// defaults to JSON
return JSON(queryResultsList)
}
}