Big refactoring of PARCOURSMOB - Initial commit
This commit is contained in:
77
renderer/func-maps.go
Normal file
77
renderer/func-maps.go
Normal file
@@ -0,0 +1,77 @@
|
||||
package renderer
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TimeFrom(d any) *time.Time {
|
||||
|
||||
if date, ok := d.(time.Time); ok {
|
||||
return &date
|
||||
} else if date, ok := d.(string); ok {
|
||||
datetime, err := time.Parse("2006-01-02T15:04:05Z", date)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return &datetime
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func GenderISO5218(d any) string {
|
||||
if date, ok := d.(string); ok {
|
||||
switch date {
|
||||
case "0":
|
||||
return "Inconnu"
|
||||
case "1":
|
||||
return "Masculin"
|
||||
case "2":
|
||||
return "Féminin"
|
||||
case "9":
|
||||
return "Sans objet"
|
||||
}
|
||||
}
|
||||
if date, ok := d.(int64); ok {
|
||||
switch date {
|
||||
case 0:
|
||||
return "Inconnu"
|
||||
case 1:
|
||||
return "Masculin"
|
||||
case 2:
|
||||
return "Féminin"
|
||||
case 9:
|
||||
return "Sans objet"
|
||||
}
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func Dict(v ...interface{}) map[string]interface{} {
|
||||
dict := map[string]interface{}{}
|
||||
lenv := len(v)
|
||||
for i := 0; i < lenv; i += 2 {
|
||||
key := strval(v[i])
|
||||
if i+1 >= lenv {
|
||||
dict[key] = ""
|
||||
continue
|
||||
}
|
||||
dict[key] = v[i+1]
|
||||
}
|
||||
return dict
|
||||
}
|
||||
|
||||
func strval(v interface{}) string {
|
||||
switch v := v.(type) {
|
||||
case string:
|
||||
return v
|
||||
case []byte:
|
||||
return string(v)
|
||||
case error:
|
||||
return v.Error()
|
||||
case fmt.Stringer:
|
||||
return v.String()
|
||||
default:
|
||||
return fmt.Sprintf("%v", v)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user