From 145b0e74247a161c4c22e1aa0c5568604a3a83b6 Mon Sep 17 00:00:00 2001 From: Matthew Lemon Date: Thu, 8 Feb 2024 15:17:57 +0000 Subject: Moved main to cmd/web and added routes() method Started to separate out funtionality: added an application struct and several methods (routes(), home() and a notFound() error). At the moment, the application struct does not carry any other configuration objects or a database pool connection - it is just there to get the routing going. --- cmd/web/handlers.go | 18 ++++++++++++++++++ cmd/web/main.go | 17 +++++++++++++++++ cmd/web/routes.go | 10 ++++++++++ 3 files changed, 45 insertions(+) create mode 100644 cmd/web/handlers.go create mode 100644 cmd/web/main.go create mode 100644 cmd/web/routes.go (limited to 'cmd') diff --git a/cmd/web/handlers.go b/cmd/web/handlers.go new file mode 100644 index 0000000..aed4103 --- /dev/null +++ b/cmd/web/handlers.go @@ -0,0 +1,18 @@ +package main + +import ( + "net/http" +) + +func (app *application) notFound(w http.ResponseWriter) { + http.Error(w, http.StatusText(401), 401) +} + +func (app *application) home(w http.ResponseWriter, r *http.Request) { + if r.URL.Path != "/" { + app.notFound(w) + return + } + + w.Write([]byte("Hello from DED")) +} diff --git a/cmd/web/main.go b/cmd/web/main.go new file mode 100644 index 0000000..bd7e500 --- /dev/null +++ b/cmd/web/main.go @@ -0,0 +1,17 @@ +package main + +import ( + "log" + "net/http" +) + +type application struct{} + +func main() { + app := &application{} + // mux := http.NewServeMux() + // mux.HandleFunc("/", home) + log.Print("starting server on :4000") + err := http.ListenAndServe(":4000", app.routes()) + log.Fatal(err) +} diff --git a/cmd/web/routes.go b/cmd/web/routes.go new file mode 100644 index 0000000..2761d99 --- /dev/null +++ b/cmd/web/routes.go @@ -0,0 +1,10 @@ +package main + +import "net/http" + +func (app *application) routes() *http.ServeMux { + mux := http.NewServeMux() + + mux.HandleFunc("/", app.home) + return mux +} -- cgit v1.2.3