Vari fix e riorganizzazione del codice

main-old
Antonio De Lucreziis 3 years ago
parent 9db584aab6
commit ef1183b35e

@ -1,7 +1,5 @@
package main
// "github.com/phc-dm/auth-poisson/user"
// AuthService rappresenta un servizio di autenticazione
// type AuthService interface {
// GetUsers() []User

@ -6,6 +6,7 @@ import (
"strings"
"github.com/joho/godotenv"
"github.com/phc-dm/server-poisson/util"
)
var Mode string
@ -22,7 +23,7 @@ func stringOrDefault(value, defaultValue string) string {
return value
}
func LoadConfig() {
func Load() {
godotenv.Load()
log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile)
@ -39,3 +40,12 @@ func LoadConfig() {
ForumUrl = stringOrDefault(os.Getenv("FORUM_URL"), "forum.phc.dm.unipi.it")
log.Printf("FORUM_URL = %v", ForumUrl)
}
func Object() util.H {
return util.H{
"Mode": Mode,
"Host": Host,
"GitUrl": GitUrl,
"ForumUrl": ForumUrl,
}
}

@ -6,13 +6,12 @@ import (
"github.com/go-chi/chi/v5"
"github.com/go-chi/chi/v5/middleware"
"github.com/phc-dm/server-poisson/utils"
"github.com/phc-dm/server-poisson/config"
"github.com/phc-dm/server-poisson/util"
)
type object map[string]interface{}
func main() {
config.LoadConfig()
config.Load()
r := chi.NewRouter()
@ -25,11 +24,11 @@ func main() {
r.Handle("/blog/*", http.StripPrefix("/blog", http.FileServer(http.Dir("./blog/public"))))
// Templates & Renderer
renderer := utils.NewTemplateRenderer("base.html")
renderer := NewTemplateRenderer("base.html")
// Routes
r.Get("/", func(w http.ResponseWriter, r *http.Request) {
err := renderer.Render(w, "home.html", object{})
err := renderer.Render(w, "home.html", util.H{})
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
@ -37,7 +36,7 @@ func main() {
})
r.Get("/utenti", func(w http.ResponseWriter, r *http.Request) {
err := renderer.Render(w, "utenti.html", object{})
err := renderer.Render(w, "utenti.html", util.H{})
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
@ -45,13 +44,13 @@ func main() {
})
r.Get("/login", func(w http.ResponseWriter, r *http.Request) {
err := renderer.Render(w, "login.html", object{})
err := renderer.Render(w, "login.html", util.H{})
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
})
log.Printf(`Starting server...`)
http.ListenAndServe(Config.Host, r)
log.Printf(`Starting server on %v...`, config.Host)
http.ListenAndServe(config.Host, r)
}

@ -1,10 +1,11 @@
package utils
package main
import (
"io"
"text/template"
"github.com/phc-dm/server-poisson/config"
"github.com/phc-dm/server-poisson/util"
)
// TemplateRenderer holds cached templates for rendering
@ -24,12 +25,10 @@ func NewTemplateRenderer(baseFile string) *TemplateRenderer {
}
// Render the template
func (t *TemplateRenderer) Render(w io.Writer, name string, data interface{}) error {
func (t *TemplateRenderer) Render(w io.Writer, name string, data util.H) error {
tmpl := t.templateMap[name]
if config.Mode == "development" || tmpl == nil {
tmpl = template.Must(t.baseTemplate.Clone())
if config.Mode == "development" {
tmpl = template.Must(template.ParseFiles("./views/" + t.baseFile))
} else {
@ -40,5 +39,9 @@ func (t *TemplateRenderer) Render(w io.Writer, name string, data interface{}) er
t.templateMap[name] = tmpl
}
return tmpl.ExecuteTemplate(w, "base", data)
newData := util.H{}
newData.Apply(data)
newData["Config"] = config.Object()
return tmpl.ExecuteTemplate(w, "base", newData)
}

@ -0,0 +1,13 @@
package util
type H map[string]interface{}
func (target H) Apply(sources ...H) H {
for _, source := range sources {
for k, v := range source {
target[k] = v
}
}
return target
}
Loading…
Cancel
Save