65 lines
1.4 KiB
Go
65 lines
1.4 KiB
Go
package utils
|
|
|
|
import (
|
|
"log"
|
|
"strconv"
|
|
)
|
|
|
|
func Sanitize(s string) (t string) {
|
|
symbols := map[rune]string{
|
|
'á': "a", 'Á': "a", 'à': "e", 'À': "a", 'â': "a", 'Â': "a", 'ä': "a", 'Ä': "a", 'ã': "a",
|
|
'ç': "c",
|
|
'é': "e", 'É': "e", 'è': "e", 'È': "e", 'ê': "e", 'Ê': "e", 'ë': "e", 'Ë': "e",
|
|
'í': "i", 'Í': "i", 'ì': "i", 'Ì': "i", 'î': "i", 'Î': "i", 'ï': "i", 'Ï': "i",
|
|
'ñ': "n",
|
|
'ó': "o", 'Ó': "o", 'ò': "o", 'Ò': "o", 'ô': "o", 'Ô': "o", 'ö': "o", 'Ö': "o", 'ø': "o",
|
|
'ú': "u", 'Ú': "u", 'ù': "u", 'Ù': "u", 'û': "u", 'Û': "u", 'ü': "u", 'Ü': "u",
|
|
}
|
|
|
|
for _, c := range s {
|
|
if int(c) >= int('a') && int(c) <= int('z') {
|
|
t += string(c)
|
|
} else if int(c) >= int('0') && int(c) <= int('9') {
|
|
t += string(c)
|
|
} else if int(c) >= int('A') && int(c) <= int('Z') {
|
|
t += string(int(c) - int('A') + int('a'))
|
|
} else if v, ok := symbols[c]; ok {
|
|
t += v
|
|
} else {
|
|
t += "-"
|
|
}
|
|
}
|
|
return t
|
|
}
|
|
|
|
func NullableString(s string) interface{} {
|
|
if len(s) == 0 {
|
|
return nil
|
|
}
|
|
return s
|
|
}
|
|
|
|
func NullableInt(i int) interface{} {
|
|
if i == 0 {
|
|
return nil
|
|
}
|
|
return i
|
|
}
|
|
|
|
func ArrayContains(arr []string, val string) bool {
|
|
for _, elt := range arr {
|
|
if elt == val {
|
|
return true
|
|
}
|
|
}
|
|
return false
|
|
}
|
|
|
|
func AtoI(s string) int {
|
|
res, err := strconv.Atoi(s)
|
|
if err != nil {
|
|
log.Fatalf("error while converting '%s' to int : %s", s, err)
|
|
}
|
|
return res
|
|
}
|