func()

in internal/resources/fetching/fetchers/azure/assets_enricher_storage_account.go [180:217]


func (e storageAccountEnricher) appendExtensionAssets(extensionField string, extensions []inventory.AzureAsset, assets []inventory.AzureAsset) error {
	if len(extensions) == 0 {
		return nil
	}

	// map per storage account id
	perStorageAccountID := map[string]inventory.AzureAsset{}
	for _, d := range extensions {
		perStorageAccountID[strings.FromMap(d.Extension, inventory.ExtensionStorageAccountID)] = d
	}

	var errs []error
	for i, a := range assets {
		if a.Type != inventory.StorageAccountAssetType {
			continue
		}

		ext, exist := perStorageAccountID[a.Id]
		if !exist {
			continue
		}

		extMap, err := maps.AsMapStringAny(ext)
		if err != nil {
			errs = append(errs, err)
		}

		a.AddExtension(extensionField, extMap)

		assets[i] = a
	}

	if len(errs) > 0 {
		return errors.Join(errs...)
	}

	return nil
}