diff options
Diffstat (limited to 'cmd/web/handlers')
-rw-r--r-- | cmd/web/handlers/blog.go | 32 | ||||
-rw-r--r-- | cmd/web/handlers/context.go | 5 | ||||
-rw-r--r-- | cmd/web/handlers/routes.go | 14 |
3 files changed, 51 insertions, 0 deletions
diff --git a/cmd/web/handlers/blog.go b/cmd/web/handlers/blog.go new file mode 100644 index 0000000..5a874f4 --- /dev/null +++ b/cmd/web/handlers/blog.go @@ -0,0 +1,32 @@ +package handlers + +import ( + "html/template" + "log" + "net/http" +) + +func (ctx *HandlerContext) blogIndex(w http.ResponseWriter, r *http.Request) { + if r.URL.Path != "/" { + http.NotFound(w, r) + return + } + + files := []string{ + "./ui/html/base.tmpl.html", + "./ui/html/pages/index.tmpl.html", + } + + compiled, err := template.ParseFiles(files...) + if err != nil { + log.Println(err.Error()) + http.Error(w, "Internal Server Error", 500) + return + } + + err = compiled.ExecuteTemplate(w, "base", ctx) + if err != nil { + log.Println(err.Error()) + http.Error(w, "Internal Server Error", 500) + } +} diff --git a/cmd/web/handlers/context.go b/cmd/web/handlers/context.go new file mode 100644 index 0000000..7df2915 --- /dev/null +++ b/cmd/web/handlers/context.go @@ -0,0 +1,5 @@ +package handlers + +type HandlerContext struct { + Webmaster string +} diff --git a/cmd/web/handlers/routes.go b/cmd/web/handlers/routes.go new file mode 100644 index 0000000..5a57440 --- /dev/null +++ b/cmd/web/handlers/routes.go @@ -0,0 +1,14 @@ +package handlers + +import ( + "github.com/gorilla/mux" +) + +func RegisterEndpoints(webmaster string) *mux.Router { + ctx := HandlerContext{webmaster} + + blogRouter := mux.NewRouter() + blogRouter.HandleFunc("/", ctx.blogIndex) + + return blogRouter +} |