aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorAlexander Kavon <hawk@alexkavon.com>2023-12-01 00:45:31 -0500
committerAlexander Kavon <hawk@alexkavon.com>2023-12-01 00:45:31 -0500
commitbc47e526e962c1c5bce850de312c6e5fbaf16458 (patch)
treec3a832edf869e75e3fd87494939a34a846778431 /src/server
parent17af6e1a5017285b680a7d0a1dace1e1a1612ab9 (diff)
settled on map[string]interface{} for passing data to view, automatically append session struct, fixed nil session checks, updated templates to use map variable names
Diffstat (limited to 'src/server')
-rw-r--r--src/server/ui.go19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/server/ui.go b/src/server/ui.go
index 7d59168..baea769 100644
--- a/src/server/ui.go
+++ b/src/server/ui.go
@@ -8,6 +8,7 @@ import (
"strings"
"gitlab.com/alexkavon/newsstand/src/conf"
+ "gitlab.com/alexkavon/newsstand/src/sessions"
)
type Ui struct {
@@ -47,7 +48,7 @@ func (ui *Ui) CompilePages(uipath string) {
}
}
-func (ui *Ui) Render(w http.ResponseWriter, pageName string, data interface{}) {
+func (ui *Ui) Render(w http.ResponseWriter, r *http.Request, pageName string, data map[string]any) {
templateName := "base"
// if the pageName has more than 1 `/` then it specifies the name of a template to target
slashCount := strings.Count(pageName, "/")
@@ -55,14 +56,20 @@ func (ui *Ui) Render(w http.ResponseWriter, pageName string, data interface{}) {
splitName := strings.Split(pageName, "/")
templateName = splitName[0]
}
-
- ui.RenderTemplate(w, pageName, templateName, data)
+ ui.RenderTemplate(w, r, pageName, templateName, data)
}
-func (ui *Ui) RenderTemplate(w http.ResponseWriter, pageName, templateName string, data interface{}) {
+func (ui *Ui) RenderTemplate(w http.ResponseWriter, r *http.Request, pageName, templateName string, data map[string]any) {
+ d := map[string]any{}
+ for k, v := range data {
+ d[k] = v
+ }
+ if session := r.Context().Value(sessions.SessionCtxKey("session")); session != nil {
+ d["session"] = session.(*sessions.Session)
+ }
p := ui.pages[pageName]
- err := p.ExecuteTemplate(w, templateName, data)
+ err := p.ExecuteTemplate(w, templateName, d)
if err != nil {
- log.Fatal(err)
+ log.Println(err)
}
}