Browse Source
Migrated all http mechanics to a central handler, changed static
Migrated all http mechanics to a central handler, changed static
content to all be front-loaded and thread safemaster
4 changed files with 114 additions and 66 deletions
-
16main.go
-
75pages/root.go
-
24pages/submit.go
-
65static/static.go
@ -0,0 +1,75 @@ |
|||||
|
package pages |
||||
|
|
||||
|
import ( |
||||
|
"fmt" |
||||
|
"html/template" |
||||
|
"net/http" |
||||
|
"qurl/static" |
||||
|
"qurl/storage" |
||||
|
) |
||||
|
|
||||
|
type RootHandler struct { |
||||
|
Storage storage.Storage |
||||
|
|
||||
|
index *static.StaticContent |
||||
|
css *static.StaticContent |
||||
|
favi *static.StaticContent |
||||
|
submit *template.Template |
||||
|
} |
||||
|
|
||||
|
func (ctx *RootHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { |
||||
|
fname := r.URL.Path |
||||
|
|
||||
|
switch fname { |
||||
|
case "/index.html": |
||||
|
fallthrough |
||||
|
case "/": |
||||
|
ctx.index.ServeHTTP(w, r) |
||||
|
|
||||
|
case "/submit.html": |
||||
|
ctx.ServeSubmit(w, r) |
||||
|
|
||||
|
case "/qurl.css": |
||||
|
ctx.css.ServeHTTP(w, r) |
||||
|
|
||||
|
case "/favicon.ico": |
||||
|
ctx.favi.ServeHTTP(w, r) |
||||
|
|
||||
|
default: |
||||
|
fmt.Printf("Path: %s\n", fname) |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
func (ctx *RootHandler) Init() error { |
||||
|
// Initialize the static content object for the index page
|
||||
|
index := &static.StaticContent{Content: "index.html"} |
||||
|
err := index.Init() |
||||
|
if err != nil { |
||||
|
return err |
||||
|
} |
||||
|
ctx.index = index |
||||
|
|
||||
|
// Initialize the static content object for the css
|
||||
|
css := &static.StaticContent{Content: "qurl.css"} |
||||
|
err = css.Init() |
||||
|
if err != nil { |
||||
|
return err |
||||
|
} |
||||
|
ctx.css = css |
||||
|
|
||||
|
// Initialize the static content object for the css
|
||||
|
favi := &static.StaticContent{Content: "favicon.ico"} |
||||
|
err = favi.Init() |
||||
|
if err != nil { |
||||
|
return err |
||||
|
} |
||||
|
ctx.favi = favi |
||||
|
|
||||
|
// Initialize submit page template
|
||||
|
ctx.submit = template.New("submit.html") |
||||
|
_, err = ctx.submit.Parse(string(static.Assets["submit.html"])) |
||||
|
if err != nil { |
||||
|
return err |
||||
|
} |
||||
|
return nil |
||||
|
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue