|
|
@ -86,30 +86,28 @@ func (w *statusResponseWriter) WriteHeader(statusCode int) { |
|
|
|
w.Inner.WriteHeader(statusCode) |
|
|
|
} |
|
|
|
|
|
|
|
// CreateMainRouter creates the main Gorilla router for the application.
|
|
|
|
// InitMainRouter creates the main Gorilla router for the application.
|
|
|
|
//
|
|
|
|
// This function will not populate the router with an error-recovery and
|
|
|
|
// metrics-reporting middleware. If these middleware are required, then the
|
|
|
|
// caller should encapsulate this router inside of another router and register
|
|
|
|
// the middlewares on the encapsulating router.
|
|
|
|
func CreateMainRouter(rl *rushlink) *mux.Router { |
|
|
|
router := mux.NewRouter() |
|
|
|
router.HandleFunc("/{path:img/"+staticFilenameExpr+"}", rl.staticGetHandler).Methods("GET", "HEAD") |
|
|
|
router.HandleFunc("/{path:css/"+staticFilenameExpr+"}", rl.staticGetHandler).Methods("GET", "HEAD") |
|
|
|
router.HandleFunc("/{path:js/"+staticFilenameExpr+"}", rl.staticGetHandler).Methods("GET", "HEAD") |
|
|
|
router.HandleFunc("/", rl.indexGetHandler).Methods("GET", "HEAD") |
|
|
|
router.HandleFunc("/", rl.newPasteHandler).Methods("POST") |
|
|
|
router.HandleFunc("/"+urlKeyExpr, rl.viewPasteHandler).Methods("GET", "HEAD") |
|
|
|
router.HandleFunc("/"+urlKeyWithExtExpr, rl.viewPasteHandler).Methods("GET", "HEAD") |
|
|
|
router.HandleFunc("/"+urlKeyExpr+"/nr", rl.viewPasteHandlerNoRedirect).Methods("GET", "HEAD") |
|
|
|
router.HandleFunc("/"+urlKeyWithExtExpr+"/nr", rl.viewPasteHandlerNoRedirect).Methods("GET", "HEAD") |
|
|
|
router.HandleFunc("/"+urlKeyExpr+"/meta", rl.viewPasteHandlerMeta).Methods("GET", "HEAD") |
|
|
|
router.HandleFunc("/"+urlKeyWithExtExpr+"/meta", rl.viewPasteHandlerMeta).Methods("GET", "HEAD") |
|
|
|
router.HandleFunc("/"+urlKeyExpr, rl.deletePasteHandler).Methods("DELETE") |
|
|
|
router.HandleFunc("/"+urlKeyWithExtExpr, rl.deletePasteHandler).Methods("DELETE") |
|
|
|
router.HandleFunc("/"+urlKeyExpr+"/delete", rl.deletePasteHandler).Methods("POST") |
|
|
|
router.HandleFunc("/"+urlKeyWithExtExpr+"/delete", rl.deletePasteHandler).Methods("POST") |
|
|
|
return router |
|
|
|
func InitMainRouter(r *mux.Router, rl *rushlink) { |
|
|
|
r.HandleFunc("/{path:img/"+staticFilenameExpr+"}", rl.staticGetHandler).Methods("GET", "HEAD") |
|
|
|
r.HandleFunc("/{path:css/"+staticFilenameExpr+"}", rl.staticGetHandler).Methods("GET", "HEAD") |
|
|
|
r.HandleFunc("/{path:js/"+staticFilenameExpr+"}", rl.staticGetHandler).Methods("GET", "HEAD") |
|
|
|
r.HandleFunc("/", rl.indexGetHandler).Methods("GET", "HEAD") |
|
|
|
r.HandleFunc("/", rl.newPasteHandler).Methods("POST") |
|
|
|
r.HandleFunc("/"+urlKeyExpr, rl.viewPasteHandler).Methods("GET", "HEAD") |
|
|
|
r.HandleFunc("/"+urlKeyWithExtExpr, rl.viewPasteHandler).Methods("GET", "HEAD") |
|
|
|
r.HandleFunc("/"+urlKeyExpr+"/nr", rl.viewPasteHandlerNoRedirect).Methods("GET", "HEAD") |
|
|
|
r.HandleFunc("/"+urlKeyWithExtExpr+"/nr", rl.viewPasteHandlerNoRedirect).Methods("GET", "HEAD") |
|
|
|
r.HandleFunc("/"+urlKeyExpr+"/meta", rl.viewPasteHandlerMeta).Methods("GET", "HEAD") |
|
|
|
r.HandleFunc("/"+urlKeyWithExtExpr+"/meta", rl.viewPasteHandlerMeta).Methods("GET", "HEAD") |
|
|
|
r.HandleFunc("/"+urlKeyExpr, rl.deletePasteHandler).Methods("DELETE") |
|
|
|
r.HandleFunc("/"+urlKeyWithExtExpr, rl.deletePasteHandler).Methods("DELETE") |
|
|
|
r.HandleFunc("/"+urlKeyExpr+"/delete", rl.deletePasteHandler).Methods("POST") |
|
|
|
r.HandleFunc("/"+urlKeyWithExtExpr+"/delete", rl.deletePasteHandler).Methods("POST") |
|
|
|
} |
|
|
|
|
|
|
|
// StartMainServer starts the main http server listening on addr.
|
|
|
@ -131,7 +129,7 @@ func StartMainServer(addr string, db *db.Database, fs *db.FileStore, rawRootURL |
|
|
|
router := mux.NewRouter() |
|
|
|
router.Use(rl.metricsMiddleware) |
|
|
|
router.Use(rl.recoveryMiddleware) |
|
|
|
router.Handle("/", CreateMainRouter(&rl)) |
|
|
|
InitMainRouter(router, &rl) |
|
|
|
|
|
|
|
srv := &http.Server{ |
|
|
|
Handler: router, |
|
|
|