aboutsummaryrefslogtreecommitdiff
path: root/cmd/web
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/web')
-rw-r--r--cmd/web/handlers/blog.go12
-rw-r--r--cmd/web/handlers/routes.go10
-rw-r--r--cmd/web/main.go35
-rw-r--r--cmd/web/types/application.go15
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
+}
+