Refactor main into subdirs

This commit is contained in:
Daan Sprenkels
2019-09-19 21:29:25 +02:00
parent 60fd92c956
commit a4ad82d6dd
5 changed files with 66 additions and 61 deletions

View File

@@ -73,11 +73,11 @@ func (t PasteState) String() string {
}
}
func IndexGetHandler(w http.ResponseWriter, r *http.Request) {
func indexGetHandler(w http.ResponseWriter, r *http.Request) {
Render(w, r, "index", nil)
}
func IndexPostHandler(w http.ResponseWriter, r *http.Request) {
func indexPostHandler(w http.ResponseWriter, r *http.Request) {
if err := r.ParseMultipartForm(50 * 1000 * 1000); err != nil {
log.Printf("error: %v\n", err)
RenderInternalServerError(w, r, err)
@@ -99,18 +99,18 @@ func IndexPostHandler(w http.ResponseWriter, r *http.Request) {
return
}
ShortenPostHandler(w, r)
shortenPostHandler(w, r)
}
func PasteGetHandler(w http.ResponseWriter, r *http.Request) {
func pasteGetHandler(w http.ResponseWriter, r *http.Request) {
pasteGetHandlerInner(w, r, false, false)
}
func PasteGetHandlerNoRedirect(w http.ResponseWriter, r *http.Request) {
func pasteGetHandlerNoRedirect(w http.ResponseWriter, r *http.Request) {
pasteGetHandlerInner(w, r, true, false)
}
func PasteGetHandlerMeta(w http.ResponseWriter, r *http.Request) {
func pasteGetHandlerMeta(w http.ResponseWriter, r *http.Request) {
pasteGetHandlerInner(w, r, false, true)
}
@@ -169,7 +169,7 @@ func pasteGetHandlerInner(w http.ResponseWriter, r *http.Request, noRedirect, sh
}
}
func ShortenPostHandler(w http.ResponseWriter, r *http.Request) {
func shortenPostHandler(w http.ResponseWriter, r *http.Request) {
rawurl := r.PostForm.Get("shorten")
userURL, err := url.ParseRequestURI(rawurl)
if err != nil {

27
handlers/router.go Normal file
View File

@@ -0,0 +1,27 @@
package handlers
import (
"log"
"net/http"
"time"
"github.com/gorilla/mux"
)
func StartMainServer() {
// Initialize Gorilla router
router := mux.NewRouter()
router.HandleFunc("/", indexGetHandler).Methods("GET")
router.HandleFunc("/", indexPostHandler).Methods("POST")
router.HandleFunc("/{key:[A-Za-z0-9-_]{4,}}", pasteGetHandler).Methods("GET")
router.HandleFunc("/{key:[A-Za-z0-9-_]{4,}}/nr", pasteGetHandlerNoRedirect).Methods("GET")
router.HandleFunc("/{key:[A-Za-z0-9-_]{4,}}/meta", pasteGetHandlerMeta).Methods("GET")
srv := &http.Server{
Handler: router,
Addr: "127.0.0.1:8000",
WriteTimeout: 15 * time.Second,
ReadTimeout: 15 * time.Second,
}
log.Fatal(srv.ListenAndServe())
}

View File

@@ -69,8 +69,7 @@ func mustMatch(pattern, name string) bool {
}
func parseFail(tmplName string, err error) {
err = errors.Wrapf(err, "parsing of %v failed", tmplName)
panic(err)
panic(errors.Wrapf(err, "parsing of %v failed", tmplName))
}
func Render(w http.ResponseWriter, r *http.Request, tmplName string, data map[string]interface{}) {