You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
website/server/config/config.go

55 lines
930 B
Go

2 years ago
package config
import (
"git.phc.dm.unipi.it/phc/website/libs/sl"
"github.com/joho/godotenv"
)
type Config struct {
Mode string
Host string
chore: refactored sl and added an hooks system modified: cmd/dev-server/main.go, cmd/server/main.go Aggiornati per utilizzare il nuovo sistema degli hooks, ora nei "main" vanno solo chiamate "ProvideValue", "Provide" e "ProvideHook" ed una finale di "Invoke" o "Use". Mentre nei vari servizi vanno solo chiamate "Use" o "UseHook" modified: libs/sl/sl.go Rinominati "InjectValue" e "InjectLazy" a "Provide" e "ProvideFunc", altro refactor di varie cose ed aggiunto il concetto degli hook per poter iniettare anche più di un servizio dentro un altro in un preciso ordine. modified: server/config/config.go Lieve refactor ed aggiunta la variabile "NPM_COMMAND" configurabile per la fase di development. modified: server/listautenti/listautenti.go Ora questo è un vero e proprio servizio "state-less", fornisce solo una funzione che monta tutte le route necessarie a questo servizio. Più avanti dipenderà da LDAP quindi forse sarà leggermente più complicato. modified: server/listautenti/listautenti_test.go Aggiornato questo test, ora usa il nuovo sistema e funge di nuovo. deleted: server/routes/routes.go Il sistema degli hook è stato introdotto anche per semplificare questa cosa che ora infatti non serve più. modified: server/server.go Ora il server non chiama più "InjectValue" con i sotto-router ma espone solo un hook che passa i sotto router come parametri, in questo modo è più facile aggiungere e togliere servizi direttamente alla radice quando viene configurata tutta l'applicazione.
1 year ago
NpmCommand string
2 years ago
}
var Slot = sl.NewSlot[Config]()
chore: refactored sl and added an hooks system modified: cmd/dev-server/main.go, cmd/server/main.go Aggiornati per utilizzare il nuovo sistema degli hooks, ora nei "main" vanno solo chiamate "ProvideValue", "Provide" e "ProvideHook" ed una finale di "Invoke" o "Use". Mentre nei vari servizi vanno solo chiamate "Use" o "UseHook" modified: libs/sl/sl.go Rinominati "InjectValue" e "InjectLazy" a "Provide" e "ProvideFunc", altro refactor di varie cose ed aggiunto il concetto degli hook per poter iniettare anche più di un servizio dentro un altro in un preciso ordine. modified: server/config/config.go Lieve refactor ed aggiunta la variabile "NPM_COMMAND" configurabile per la fase di development. modified: server/listautenti/listautenti.go Ora questo è un vero e proprio servizio "state-less", fornisce solo una funzione che monta tutte le route necessarie a questo servizio. Più avanti dipenderà da LDAP quindi forse sarà leggermente più complicato. modified: server/listautenti/listautenti_test.go Aggiornato questo test, ora usa il nuovo sistema e funge di nuovo. deleted: server/routes/routes.go Il sistema degli hook è stato introdotto anche per semplificare questa cosa che ora infatti non serve più. modified: server/server.go Ora il server non chiama più "InjectValue" con i sotto-router ma espone solo un hook che passa i sotto router come parametri, in questo modo è più facile aggiungere e togliere servizi direttamente alla radice quando viene configurata tutta l'applicazione.
1 year ago
func setFromEnvOrDefault(target *string, m map[string]string, key string, defaultValue string) {
v, ok := m[key]
if ok {
*target = v
} else {
*target = defaultValue
}
}
func Configure(l *sl.ServiceLocator) (Config, error) {
chore: refactored sl and added an hooks system modified: cmd/dev-server/main.go, cmd/server/main.go Aggiornati per utilizzare il nuovo sistema degli hooks, ora nei "main" vanno solo chiamate "ProvideValue", "Provide" e "ProvideHook" ed una finale di "Invoke" o "Use". Mentre nei vari servizi vanno solo chiamate "Use" o "UseHook" modified: libs/sl/sl.go Rinominati "InjectValue" e "InjectLazy" a "Provide" e "ProvideFunc", altro refactor di varie cose ed aggiunto il concetto degli hook per poter iniettare anche più di un servizio dentro un altro in un preciso ordine. modified: server/config/config.go Lieve refactor ed aggiunta la variabile "NPM_COMMAND" configurabile per la fase di development. modified: server/listautenti/listautenti.go Ora questo è un vero e proprio servizio "state-less", fornisce solo una funzione che monta tutte le route necessarie a questo servizio. Più avanti dipenderà da LDAP quindi forse sarà leggermente più complicato. modified: server/listautenti/listautenti_test.go Aggiornato questo test, ora usa il nuovo sistema e funge di nuovo. deleted: server/routes/routes.go Il sistema degli hook è stato introdotto anche per semplificare questa cosa che ora infatti non serve più. modified: server/server.go Ora il server non chiama più "InjectValue" con i sotto-router ma espone solo un hook che passa i sotto router come parametri, in questo modo è più facile aggiungere e togliere servizi direttamente alla radice quando viene configurata tutta l'applicazione.
1 year ago
env, err := godotenv.Read(".env")
2 years ago
if err != nil {
return Config{}, err
}
var cfg Config
chore: refactored sl and added an hooks system modified: cmd/dev-server/main.go, cmd/server/main.go Aggiornati per utilizzare il nuovo sistema degli hooks, ora nei "main" vanno solo chiamate "ProvideValue", "Provide" e "ProvideHook" ed una finale di "Invoke" o "Use". Mentre nei vari servizi vanno solo chiamate "Use" o "UseHook" modified: libs/sl/sl.go Rinominati "InjectValue" e "InjectLazy" a "Provide" e "ProvideFunc", altro refactor di varie cose ed aggiunto il concetto degli hook per poter iniettare anche più di un servizio dentro un altro in un preciso ordine. modified: server/config/config.go Lieve refactor ed aggiunta la variabile "NPM_COMMAND" configurabile per la fase di development. modified: server/listautenti/listautenti.go Ora questo è un vero e proprio servizio "state-less", fornisce solo una funzione che monta tutte le route necessarie a questo servizio. Più avanti dipenderà da LDAP quindi forse sarà leggermente più complicato. modified: server/listautenti/listautenti_test.go Aggiornato questo test, ora usa il nuovo sistema e funge di nuovo. deleted: server/routes/routes.go Il sistema degli hook è stato introdotto anche per semplificare questa cosa che ora infatti non serve più. modified: server/server.go Ora il server non chiama più "InjectValue" con i sotto-router ma espone solo un hook che passa i sotto router come parametri, in questo modo è più facile aggiungere e togliere servizi direttamente alla radice quando viene configurata tutta l'applicazione.
1 year ago
setFromEnvOrDefault(&cfg.Mode, env, "MODE", "production")
setFromEnvOrDefault(&cfg.Host, env, "HOST", ":4000")
setFromEnvOrDefault(&cfg.NpmCommand, env, "NPM_COMMAND", "npm")
2 years ago
return cfg, nil
}
chore: refactored sl and added an hooks system modified: cmd/dev-server/main.go, cmd/server/main.go Aggiornati per utilizzare il nuovo sistema degli hooks, ora nei "main" vanno solo chiamate "ProvideValue", "Provide" e "ProvideHook" ed una finale di "Invoke" o "Use". Mentre nei vari servizi vanno solo chiamate "Use" o "UseHook" modified: libs/sl/sl.go Rinominati "InjectValue" e "InjectLazy" a "Provide" e "ProvideFunc", altro refactor di varie cose ed aggiunto il concetto degli hook per poter iniettare anche più di un servizio dentro un altro in un preciso ordine. modified: server/config/config.go Lieve refactor ed aggiunta la variabile "NPM_COMMAND" configurabile per la fase di development. modified: server/listautenti/listautenti.go Ora questo è un vero e proprio servizio "state-less", fornisce solo una funzione che monta tutte le route necessarie a questo servizio. Più avanti dipenderà da LDAP quindi forse sarà leggermente più complicato. modified: server/listautenti/listautenti_test.go Aggiornato questo test, ora usa il nuovo sistema e funge di nuovo. deleted: server/routes/routes.go Il sistema degli hook è stato introdotto anche per semplificare questa cosa che ora infatti non serve più. modified: server/server.go Ora il server non chiama più "InjectValue" con i sotto-router ma espone solo un hook che passa i sotto router come parametri, in questo modo è più facile aggiungere e togliere servizi direttamente alla radice quando viene configurata tutta l'applicazione.
1 year ago
var ExampleProductionConfig = Config{
Mode: "production",
Host: ":4000",
chore: refactored sl and added an hooks system modified: cmd/dev-server/main.go, cmd/server/main.go Aggiornati per utilizzare il nuovo sistema degli hooks, ora nei "main" vanno solo chiamate "ProvideValue", "Provide" e "ProvideHook" ed una finale di "Invoke" o "Use". Mentre nei vari servizi vanno solo chiamate "Use" o "UseHook" modified: libs/sl/sl.go Rinominati "InjectValue" e "InjectLazy" a "Provide" e "ProvideFunc", altro refactor di varie cose ed aggiunto il concetto degli hook per poter iniettare anche più di un servizio dentro un altro in un preciso ordine. modified: server/config/config.go Lieve refactor ed aggiunta la variabile "NPM_COMMAND" configurabile per la fase di development. modified: server/listautenti/listautenti.go Ora questo è un vero e proprio servizio "state-less", fornisce solo una funzione che monta tutte le route necessarie a questo servizio. Più avanti dipenderà da LDAP quindi forse sarà leggermente più complicato. modified: server/listautenti/listautenti_test.go Aggiornato questo test, ora usa il nuovo sistema e funge di nuovo. deleted: server/routes/routes.go Il sistema degli hook è stato introdotto anche per semplificare questa cosa che ora infatti non serve più. modified: server/server.go Ora il server non chiama più "InjectValue" con i sotto-router ma espone solo un hook che passa i sotto router come parametri, in questo modo è più facile aggiungere e togliere servizi direttamente alla radice quando viene configurata tutta l'applicazione.
1 year ago
NpmCommand: "npm",
}
chore: refactored sl and added an hooks system modified: cmd/dev-server/main.go, cmd/server/main.go Aggiornati per utilizzare il nuovo sistema degli hooks, ora nei "main" vanno solo chiamate "ProvideValue", "Provide" e "ProvideHook" ed una finale di "Invoke" o "Use". Mentre nei vari servizi vanno solo chiamate "Use" o "UseHook" modified: libs/sl/sl.go Rinominati "InjectValue" e "InjectLazy" a "Provide" e "ProvideFunc", altro refactor di varie cose ed aggiunto il concetto degli hook per poter iniettare anche più di un servizio dentro un altro in un preciso ordine. modified: server/config/config.go Lieve refactor ed aggiunta la variabile "NPM_COMMAND" configurabile per la fase di development. modified: server/listautenti/listautenti.go Ora questo è un vero e proprio servizio "state-less", fornisce solo una funzione che monta tutte le route necessarie a questo servizio. Più avanti dipenderà da LDAP quindi forse sarà leggermente più complicato. modified: server/listautenti/listautenti_test.go Aggiornato questo test, ora usa il nuovo sistema e funge di nuovo. deleted: server/routes/routes.go Il sistema degli hook è stato introdotto anche per semplificare questa cosa che ora infatti non serve più. modified: server/server.go Ora il server non chiama più "InjectValue" con i sotto-router ma espone solo un hook che passa i sotto router come parametri, in questo modo è più facile aggiungere e togliere servizi direttamente alla radice quando viene configurata tutta l'applicazione.
1 year ago
var ExampleDevelopmentConfig = Config{
Mode: "development",
Host: ":4000",
chore: refactored sl and added an hooks system modified: cmd/dev-server/main.go, cmd/server/main.go Aggiornati per utilizzare il nuovo sistema degli hooks, ora nei "main" vanno solo chiamate "ProvideValue", "Provide" e "ProvideHook" ed una finale di "Invoke" o "Use". Mentre nei vari servizi vanno solo chiamate "Use" o "UseHook" modified: libs/sl/sl.go Rinominati "InjectValue" e "InjectLazy" a "Provide" e "ProvideFunc", altro refactor di varie cose ed aggiunto il concetto degli hook per poter iniettare anche più di un servizio dentro un altro in un preciso ordine. modified: server/config/config.go Lieve refactor ed aggiunta la variabile "NPM_COMMAND" configurabile per la fase di development. modified: server/listautenti/listautenti.go Ora questo è un vero e proprio servizio "state-less", fornisce solo una funzione che monta tutte le route necessarie a questo servizio. Più avanti dipenderà da LDAP quindi forse sarà leggermente più complicato. modified: server/listautenti/listautenti_test.go Aggiornato questo test, ora usa il nuovo sistema e funge di nuovo. deleted: server/routes/routes.go Il sistema degli hook è stato introdotto anche per semplificare questa cosa che ora infatti non serve più. modified: server/server.go Ora il server non chiama più "InjectValue" con i sotto-router ma espone solo un hook che passa i sotto router come parametri, in questo modo è più facile aggiungere e togliere servizi direttamente alla radice quando viene configurata tutta l'applicazione.
1 year ago
NpmCommand: "npm",
}