From 72ac37211183c328a9fac7acc88d173c4f66c99e Mon Sep 17 00:00:00 2001 From: b3t0 Date: Wed, 17 Apr 2024 17:06:39 -0600 Subject: [PATCH] Enabling Go Modules and refactoring our code to use packages --- cmd/web/main.go | 19 +++++++++++++++++++ go.mod | 3 +++ pkg/handlers/handlers.go | 17 +++++++++++++++++ pkg/render/render.go | 17 +++++++++++++++++ 4 files changed, 56 insertions(+) create mode 100644 cmd/web/main.go create mode 100644 go.mod create mode 100644 pkg/handlers/handlers.go create mode 100644 pkg/render/render.go diff --git a/cmd/web/main.go b/cmd/web/main.go new file mode 100644 index 0000000..4bd51f8 --- /dev/null +++ b/cmd/web/main.go @@ -0,0 +1,19 @@ +package main + +import ( + "fmt" + "net/http" + + "gitea.sitodosi.com/betology/curso/pkg/handlers" +) + +var portNumber = ":8080" + +// main is the main application function +func main() { + http.HandleFunc("/", handlers.Home) + http.HandleFunc("/about", handlers.About) + + fmt.Println(fmt.Sprintf("Starting application on port %s", portNumber)) + _ = http.ListenAndServe(portNumber, nil) +} diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..2a1bdd3 --- /dev/null +++ b/go.mod @@ -0,0 +1,3 @@ +module gitea.sitodosi.com/betology/curso + +go 1.22.0 diff --git a/pkg/handlers/handlers.go b/pkg/handlers/handlers.go new file mode 100644 index 0000000..d6aea53 --- /dev/null +++ b/pkg/handlers/handlers.go @@ -0,0 +1,17 @@ +package handlers + +import ( + "net/http" + + "gitea.sitodosi.com/betology/curso/pkg/render" +) + +// Home is the home page handler +func Home(w http.ResponseWriter, r *http.Request) { + render.RenderTemplate(w, "home.page.tmpl") +} + +// About is the about page handler +func About(w http.ResponseWriter, r *http.Request) { + render.RenderTemplate(w, "about.page.tmpl") +} diff --git a/pkg/render/render.go b/pkg/render/render.go new file mode 100644 index 0000000..5536bd8 --- /dev/null +++ b/pkg/render/render.go @@ -0,0 +1,17 @@ +package render + +import ( + "fmt" + "net/http" + "text/template" +) + +// RenderTemplate renders templates using html/template +func RenderTemplate(w http.ResponseWriter, tmpl string) { + parsedTemplate, _ := template.ParseFiles("./templates/" + tmpl) + err := parsedTemplate.Execute(w, nil) + if err != nil { + fmt.Println("error parsing template:", err) + return + } +}