Big refactoring of PARCOURSMOB - Initial commit

This commit is contained in:
2022-08-11 17:26:55 +02:00
commit 7225d027c9
65 changed files with 10276 additions and 0 deletions

77
renderer/func-maps.go Normal file
View 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)
}
}