MCPcopy Create free account
hub / github.com/OverloadBlitz/cloudcent-cli / ProcessMetadata

Function ProcessMetadata

internal/tui/views/pricing.go:145–174  ·  view source on GitHub ↗

ProcessMetadata builds PricingOptions from API metadata.

(meta *api.MetadataResponse)

Source from the content-addressed store, hash-verified

143
144// ProcessMetadata builds PricingOptions from API metadata.
145func ProcessMetadata(meta *api.MetadataResponse) *PricingOptions {
146 products := make([]string, 0, len(meta.ProductRegions))
147 for k := range meta.ProductRegions {
148 products = append(products, k)
149 }
150 sort.Strings(products)
151
152 regionSet := map[string]struct{}{}
153 for _, regs := range meta.ProductRegions {
154 for _, r := range regs {
155 if r != "" {
156 regionSet[r] = struct{}{}
157 }
158 }
159 }
160 regions := make([]string, 0, len(regionSet))
161 for r := range regionSet {
162 regions = append(regions, r)
163 }
164 sort.Strings(regions)
165
166 return &PricingOptions{
167 Products: products,
168 Regions: regions,
169 ProductRegions: meta.ProductRegions,
170 ProductAttrs: meta.ProductAttrs,
171 AttributeValues: meta.AttributeValues,
172 ProductGroups: meta.ProductGroups,
173 }
174}
175
176// pricingSplitThreshold is the max number of prices before a two-column layout.
177const pricingSplitThreshold = 7

Callers 1

loadMetadataIntoViewMethod · 0.92

Calls

no outgoing calls

Tested by

no test coverage detected