refactor func maps

This commit is contained in:
Arnaud Delcasse
2025-09-30 22:59:35 +02:00
parent 20a3b6ed3b
commit a6f70a6e85
5 changed files with 38 additions and 87 deletions

View File

@@ -5,9 +5,12 @@ import (
"encoding/json"
"fmt"
"html/template"
"reflect"
"strings"
"time"
filestorage "git.coopgo.io/coopgo-apps/parcoursmob/utils/storage"
validatedprofile "git.coopgo.io/coopgo-apps/parcoursmob/utils/validated-profile"
groupsstorage "git.coopgo.io/coopgo-platform/groups-management/storage"
"github.com/rs/zerolog/log"
"github.com/spf13/viper"
@@ -148,6 +151,37 @@ func strval(v interface{}) string {
}
}
// GetTemplateFuncMap returns the common template functions for rendering
func GetTemplateFuncMap(group groupsstorage.Group, globalConfig *viper.Viper, fileStorage filestorage.FileStorage) template.FuncMap {
return template.FuncMap{
"moduleAvailable": ModuleAvailable(group, globalConfig),
"timeFrom": TimeFrom,
"timeFormat": TimeFormat,
"genderISO5218": GenderISO5218,
"dict": Dict,
"json": JSON,
"rawjson": RawJSON,
"unescapeHTML": UnescapeHTML,
"walkingLength": WalkingLength,
"divideFloat64": Divide[float64],
"divideInt": Divide[int],
"typeOf": reflect.TypeOf,
"shortDuration": ShortDuration,
"beneficiaryValidatedProfile": validatedprofile.ValidateProfile(globalConfig.Sub("modules.beneficiaries.validated_profile")),
"solidarityDriverValidatedProfile": validatedprofile.ValidateProfile(globalConfig.Sub("modules.solidarity_transport.drivers.validated_profile")),
"carpoolDriverValidatedProfile": validatedprofile.ValidateProfile(globalConfig.Sub("modules.organized_carpool.drivers.validated_profile")),
"beneficiaryDocuments": func(id string) []filestorage.FileInfo {
return fileStorage.List(filestorage.PREFIX_BENEFICIARIES + "/" + id)
},
"solidarityDocuments": func(id string) []filestorage.FileInfo {
return fileStorage.List(filestorage.PREFIX_SOLIDARITY_TRANSPORT_DRIVERS + "/" + id)
},
"carpoolDocuments": func(id string) []filestorage.FileInfo {
return fileStorage.List(filestorage.PREFIX_ORGANIZED_CARPOOL_DRIVERS + "/" + id)
},
}
}
func Divide[V int | float64](a, b V) V {
return a / b
}