Files
xinmi/internal/workbench/resource_summary.go
T

36 lines
1.1 KiB
Go
Raw Normal View History

package workbench
type resourceListSummary struct {
Resource
Summary bool `json:"summary"`
}
// Lists carry selection metadata; editing always loads the complete resource.
func summarizeResource(resource Resource) resourceListSummary {
data := JSON{}
for _, key := range []string{"agent_id", "flow_id", "days_count"} {
if value, ok := resource.Data[key]; ok {
data[key] = value
}
}
if resource.Data["legacy_import"] != nil {
data["legacy_import"] = JSON{"imported": true}
}
if activation, err := decode[struct {
Configured bool `json:"configured"`
}](asJSON(resource.Data["legacy_activation"])); err == nil && resource.Data["legacy_activation"] != nil {
data["legacy_activation"] = JSON{"configured": activation.Configured}
}
if resource.Kind == "training-maps" {
if plan, err := decode[MapData](resource.Data); err == nil {
days := make([]JSON, 0, len(plan.Days))
for _, day := range plan.Days {
days = append(days, JSON{"day": day.Day, "title": day.Title})
}
data["days"] = days
}
}
resource.Data = data
return resourceListSummary{Resource: resource, Summary: true}
}