From f35cc2d2fda0c203d97c84802e37cba8d0e80456 Mon Sep 17 00:00:00 2001 From: Ruidy Nemausat Date: Sat, 14 Mar 2020 14:48:19 +0100 Subject: [PATCH] refactor --- {controllers => controller}/routes.go | 26 ++++++++++++++++---------- controller/settings.go | 3 +++ data/test.txt | 2 +- main.go | 6 +++--- {models => model}/page.go | 8 ++++---- 5 files changed, 27 insertions(+), 18 deletions(-) rename {controllers => controller}/routes.go (83%) create mode 100644 controller/settings.go rename {models => model}/page.go (89%) diff --git a/controllers/routes.go b/controller/routes.go similarity index 83% rename from controllers/routes.go rename to controller/routes.go index 8a06311..d4018dd 100644 --- a/controllers/routes.go +++ b/controller/routes.go @@ -1,12 +1,13 @@ -package controllers +package controller import ( "html/template" "log" "net/http" "regexp" + "strconv" - "github.com/rjNemo/go-wiki/models" + "github.com/rjNemo/go-wiki/model" ) // func ParseTemplates() *template.Template { @@ -19,23 +20,28 @@ func RegisteredRoutes() { http.HandleFunc("/edit/", makeHandler(editHandler)) http.HandleFunc("/save/", makeHandler(saveHandler)) http.HandleFunc("/", homeHandler) - log.Fatal(http.ListenAndServe(":8080", nil)) + log.Fatal(server(Port)) +} + +func server(p int) error { + port := ":" + strconv.Itoa(p) + return http.ListenAndServe(port, nil) } // func loveHandler(w http.ResponseWriter, r *http.Request) { // title := r.URL.Path[1:] -// p := models.NewPage(title, nil) // already a pointer +// p := model.NewPage(title, nil) // already a pointer // renderTemplate(w, "love", p) // } func homeHandler(w http.ResponseWriter, r *http.Request) { // viewHandler(w, r, "FrontPage") - p := models.BlankPage() + p := model.BlankPage() renderTemplate(w, "home", p) } func viewHandler(w http.ResponseWriter, r *http.Request, title string) { - p, err := models.LoadPage(title) + p, err := model.LoadPage(title) if err != nil { http.Redirect(w, r, "/edit/"+title, http.StatusFound) return @@ -44,16 +50,16 @@ func viewHandler(w http.ResponseWriter, r *http.Request, title string) { } func editHandler(w http.ResponseWriter, r *http.Request, title string) { - p, err := models.LoadPage(title) + p, err := model.LoadPage(title) if err != nil { - p = models.NewPage(title, nil) + p = model.NewPage(title, nil) } renderTemplate(w, "edit", p) } func saveHandler(w http.ResponseWriter, r *http.Request, title string) { body := r.FormValue("body") - p := models.NewPage(title, []byte(body)) + p := model.NewPage(title, []byte(body)) err := p.Save() checkError(err, w) http.Redirect(w, r, "/view/"+title, http.StatusFound) @@ -61,7 +67,7 @@ func saveHandler(w http.ResponseWriter, r *http.Request, title string) { // var templates = template.Must(template.ParseFiles("templates/edit.html", "templates/view.html")) // add slice of fileNAmes -func renderTemplate(w http.ResponseWriter, tmpl string, p *models.Page) { +func renderTemplate(w http.ResponseWriter, tmpl string, p *model.Page) { // err := templates.ExecuteTemplate(w, "templates/"+tmpl+".html", p) t, err := template.ParseFiles("templates/" + tmpl + ".html") checkError(err, w) diff --git a/controller/settings.go b/controller/settings.go new file mode 100644 index 0000000..06df662 --- /dev/null +++ b/controller/settings.go @@ -0,0 +1,3 @@ +package controller + +var Port int = 8080 diff --git a/data/test.txt b/data/test.txt index 5ab2f8a..bd1b168 100644 --- a/data/test.txt +++ b/data/test.txt @@ -1 +1 @@ -Hello \ No newline at end of file +Hello There \ No newline at end of file diff --git a/main.go b/main.go index 681a71e..4027b3c 100644 --- a/main.go +++ b/main.go @@ -4,10 +4,10 @@ import ( "fmt" "time" - "github.com/rjNemo/go-wiki/controllers" + "github.com/rjNemo/go-wiki/controller" ) func main() { - fmt.Printf("Start Go-wiki server at %s\n", time.Now()) - controllers.RegisteredRoutes() + fmt.Printf("Start Go-wiki server on http://localhost:%d at %s\n", controller.Port, time.Now()) + controller.RegisteredRoutes() } diff --git a/models/page.go b/model/page.go similarity index 89% rename from models/page.go rename to model/page.go index 244bb81..c059a9b 100644 --- a/models/page.go +++ b/model/page.go @@ -1,14 +1,14 @@ -package models +package model -import "io/ioutil" +import ( + "io/ioutil" +) type Page struct { Title string Body []byte } -// write constructor blank page - func BlankPage() *Page { return &Page{Title: "Empty page", Body: []byte("Write some content")} }