77 lines
1.4 KiB
Go
77 lines
1.4 KiB
Go
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
|
|
}
|