diff options
Diffstat (limited to 'cmd/web')
-rw-r--r-- | cmd/web/handlers/blog.go | 12 | ||||
-rw-r--r-- | cmd/web/handlers/routes.go | 10 | ||||
-rw-r--r-- | cmd/web/main.go | 35 | ||||
-rw-r--r-- | cmd/web/types/application.go | 15 |
4 files changed, 45 insertions, 27 deletions
diff --git a/cmd/web/handlers/blog.go b/cmd/web/handlers/blog.go index 5a874f4..da3aec2 100644 --- a/cmd/web/handlers/blog.go +++ b/cmd/web/handlers/blog.go @@ -6,7 +6,13 @@ import ( "net/http" ) -func (ctx *HandlerContext) blogIndex(w http.ResponseWriter, r *http.Request) { +type blogContext struct { + err *log.Logger + + Name string +} + +func (ctx blogContext) index(w http.ResponseWriter, r *http.Request) { if r.URL.Path != "/" { http.NotFound(w, r) return @@ -19,14 +25,14 @@ func (ctx *HandlerContext) blogIndex(w http.ResponseWriter, r *http.Request) { compiled, err := template.ParseFiles(files...) if err != nil { - log.Println(err.Error()) + ctx.err.Print(err.Error()) http.Error(w, "Internal Server Error", 500) return } err = compiled.ExecuteTemplate(w, "base", ctx) if err != nil { - log.Println(err.Error()) + ctx.err.Print(err.Error()) http.Error(w, "Internal Server Error", 500) } } diff --git a/cmd/web/handlers/routes.go b/cmd/web/handlers/routes.go index 5a57440..5c927c4 100644 --- a/cmd/web/handlers/routes.go +++ b/cmd/web/handlers/routes.go @@ -2,13 +2,17 @@ package handlers import ( "github.com/gorilla/mux" + "paterissa.net/mblog/cmd/web/types" ) -func RegisterEndpoints(webmaster string) *mux.Router { - ctx := HandlerContext{webmaster} +func RegisterEndpoints(app types.Application) *mux.Router { + ctx := blogContext{ + err: app.Err, + Name: app.Env.Webmaster, + } blogRouter := mux.NewRouter() - blogRouter.HandleFunc("/", ctx.blogIndex) + blogRouter.HandleFunc("/", ctx.index) return blogRouter } diff --git a/cmd/web/main.go b/cmd/web/main.go index cda5300..e260b42 100644 --- a/cmd/web/main.go +++ b/cmd/web/main.go @@ -10,42 +10,35 @@ import ( "github.com/joho/godotenv" "paterissa.net/mblog/cmd/web/handlers" - "paterissa.net/mblog/internal/context" + "paterissa.net/mblog/cmd/web/types" ) -type application struct { - err *log.Logger - info *log.Logger - - env context.Environment -} - func main() { - var app application + var app types.Application - app.err = log.New(os.Stderr, "ERROR\t", log.Ldate | log.Ltime) - app.info = log.New(os.Stdout, "INFO\t", log.Ldate | log.Ltime) + app.Err = log.New(os.Stderr, "ERROR\t", log.Ldate | log.Ltime) + app.Info = log.New(os.Stdout, "INFO\t", log.Ldate | log.Ltime) err := godotenv.Load() if err != nil { - app.err.Fatal("Failed to load env") + app.Err.Fatal("Failed to load env") } - app.env.Webmaster = os.Getenv("webmaster") - app.env.Db.Username = os.Getenv("db_user") - app.env.Db.Password = os.Getenv("db_pass") - app.env.AppPort, err = strconv.ParseUint(os.Getenv("app_port"), 10, 64) + app.Env.Webmaster = os.Getenv("webmaster") + app.Env.Db.Username = os.Getenv("db_user") + app.Env.Db.Password = os.Getenv("db_pass") + app.Env.AppPort, err = strconv.ParseUint(os.Getenv("web_port"), 10, 64) if err != nil { - app.env.AppPort = 5005 + app.Env.AppPort = 5005 } - router := handlers.RegisterEndpoints(app.env.Webmaster) + router := handlers.RegisterEndpoints(app) srv := &http.Server{ - Addr: fmt.Sprintf(":%d", app.env.AppPort), - ErrorLog: app.err, + Addr: fmt.Sprintf(":%d", app.Env.AppPort), + ErrorLog: app.Err, Handler: router, } err = srv.ListenAndServe() - app.err.Fatal(err) + app.Err.Fatal(err) } diff --git a/cmd/web/types/application.go b/cmd/web/types/application.go new file mode 100644 index 0000000..c981d64 --- /dev/null +++ b/cmd/web/types/application.go @@ -0,0 +1,15 @@ +package types + +import ( + "log" + + "paterissa.net/mblog/internal/context" +) + +type Application struct { + Err *log.Logger + Info *log.Logger + + Env context.Environment +} + |