a simple url shortener in Go (check it out at qurl.org)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
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 }
|