package utils import ( "alfred/pkg/log" "errors" "go.uber.org/zap" "strconv" ) func GetStringValue(value interface{}) (string, error) { if strVal, ok := value.(string); ok { return strVal, nil } return EMPTY, errors.New("value is not a string") } func GetFloat64FromString(value string) (output float64) { if value == EMPTY { output = 0 } else { output, _ = strconv.ParseFloat(value, 64) } return output } func GetInt64FromString(value string) (output int64) { if value == EMPTY { output = 0 } else { output, _ = strconv.ParseInt(value, 10, 64) } return output } func ConvertStringListToInt64List(stringList []string) ([]int64, error) { var int64List []int64 for _, str := range stringList { i, _ := strconv.ParseInt(str, 10, 64) int64List = append(int64List, i) } return int64List, nil } func GetIntFromString(value string) (output int) { output = 0 if value == EMPTY { return output } parsedValue, err := strconv.ParseFloat(value, 64) if err != nil { log.Error("Error while converting string to float64:", zap.Error(err)) return output } // Convert float64 to int return int(parsedValue) } func CreateSlicesFromStringList(data []string, size int) [][]string { var slices [][]string for i := 0; i < len(data); i += size { end := i + size if end > len(data) { end = len(data) } slice := data[i:end] slices = append(slices, slice) } return slices }