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