parseCloseEntityConfig is a generic function to parse close entity configurations
(outputMap map[string]any, params CloseEntityJobParams, logger *logger.Logger)
| 102 | |
| 103 | // parseCloseEntityConfig is a generic function to parse close entity configurations |
| 104 | func (c *Compiler) parseCloseEntityConfig(outputMap map[string]any, params CloseEntityJobParams, logger *logger.Logger) *CloseEntityConfig { |
| 105 | // Check if the key exists |
| 106 | if _, exists := outputMap[params.ConfigKey]; !exists { |
| 107 | return nil |
| 108 | } |
| 109 | |
| 110 | // Get config data for pre-processing before YAML unmarshaling |
| 111 | configData, _ := outputMap[params.ConfigKey].(map[string]any) |
| 112 | |
| 113 | // Pre-process templatable int fields |
| 114 | if err := preprocessIntFieldAsString(configData, "max", logger); err != nil { |
| 115 | logger.Printf("Invalid max value for %s: %v", params.ConfigKey, err) |
| 116 | return nil |
| 117 | } |
| 118 | |
| 119 | config := parseConfigScaffold(outputMap, params.ConfigKey, logger, func(err error) *CloseEntityConfig { |
| 120 | logger.Printf("Failed to unmarshal config: %v", err) |
| 121 | // For backward compatibility, handle nil/empty config |
| 122 | return &CloseEntityConfig{} |
| 123 | }) |
| 124 | if config == nil { |
| 125 | return nil |
| 126 | } |
| 127 | |
| 128 | // Set default max if not specified |
| 129 | if config.Max == nil { |
| 130 | config.Max = defaultIntStr(1) |
| 131 | logger.Printf("Set default max to 1 for %s", params.ConfigKey) |
| 132 | } |
| 133 | |
| 134 | // Backward compatibility: map deprecated title-prefix to required-title-prefix. |
| 135 | if config.RequiredTitlePrefix == "" && config.TitlePrefix != "" { |
| 136 | config.RequiredTitlePrefix = config.TitlePrefix |
| 137 | } |
| 138 | |
| 139 | logger.Printf("Parsed %s configuration: max=%s, target=%s", params.ConfigKey, *config.Max, config.Target) |
| 140 | |
| 141 | return config |
| 142 | } |
| 143 | |
| 144 | // closeEntityDefinition holds all parameters for a close entity type |
| 145 | type closeEntityDefinition struct { |
no test coverage detected