Skip to content
Snippets Groups Projects
Commit 74820473 authored by Jan Semmelink's avatar Jan Semmelink
Browse files

Merge branch 'main' of gitlab.com:uafrica/go-utils

parents ae239602 e7527865
Branches
Tags v1.1.8
No related merge requests found
......@@ -8,7 +8,7 @@ import (
"strings"
)
// MD5HashOfAddress calculates and returns the MD5 hash of the entered address, lat and lng concatenated together. If lat and lng is blank, it is only the hash of the entered address
// MD5HashOfAddress m(E,L,L) - calculates and returns the MD5 hash of the entered address, lat and lng concatenated together. If lat and lng is blank, it is only the hash of the entered address
func MD5HashOfAddress(enteredAddress string, lat *float64, lng *float64) string {
valueToHash := enteredAddress
if lat != nil && lng != nil {
......@@ -18,7 +18,7 @@ func MD5HashOfAddress(enteredAddress string, lat *float64, lng *float64) string
return fmt.Sprintf("%X", md5.Sum([]byte(valueToHash)))
}
// MD5HashOfLowerCaseEnteredAddress calculates and returns the MD5 hash of a string after preparing the string properly.
// MD5HashOfLowerCaseEnteredAddress m(e) - calculates and returns the MD5 hash of a string after preparing the string properly.
func MD5HashOfLowerCaseEnteredAddress(enteredAddress string) string {
valueToHash := cleanLowerCaseAddress(enteredAddress)
return fmt.Sprintf("%X", md5.Sum([]byte(valueToHash)))
......
package string_utils
import (
"encoding/json"
"fmt"
"golang.org/x/text/runes"
"golang.org/x/text/transform"
"golang.org/x/text/unicode/norm"
......@@ -83,3 +85,86 @@ func UnwrapString(s *string) string {
}
return *s
}
//trim specified strings, replacing empty string with nil
func TrimP(sp *string) *string {
if sp == nil {
return nil
}
s := strings.TrimSpace(*sp)
if s == "" {
return nil
}
return &s
}
//concatenate all specified non-empty strings with ", " separators
func ConcatP(args ...*string) string {
s := ""
for _, arg := range args {
if args != nil && *arg != "" {
if s != "" {
s += ", "
}
s += *arg
}
}
return s
}
func ToJSONString(object interface{}) (string, error) {
jsonBytes, err := json.Marshal(&object)
if err != nil {
return "", err
}
return string(jsonBytes), nil
}
func Int64ToString(number int64) string {
return strconv.FormatInt(number, 10)
}
func IntToString(number int) string {
return strconv.Itoa(number)
}
func Int64SliceToString(numbers []int64) string {
numString := fmt.Sprint(numbers)
numString = strings.Join(strings.Split(numString, " "), ",")
return numString
}
func StringToInt64(stringValue string) (int64, error) {
number, err := strconv.ParseInt(stringValue, 10, 64)
return number, err
}
func StringToFloat64(stringValue string) (float64, error) {
number, err := strconv.ParseFloat(stringValue, 64)
if err != nil {
return 0, err
}
return number, nil
}
func Float64ToString(number float64, precision int) string {
return strconv.FormatFloat(number, 'f', precision, 64)
}
func Float64ToStringWithPrec(number float64, prec int) string {
return strconv.FormatFloat(number, 'f', prec, 64)
}
func ValidateStringAsInt64(stringValue string) error {
_, err := StringToInt64(stringValue)
return err
}
func PtoString(stringPointer *string) string {
if stringPointer == nil {
return ""
}
return *stringPointer
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment