Extract middleware into function
This commit is contained in:
parent
376b73ae4b
commit
604d4e35a8
11
handler.go
11
handler.go
|
@ -112,12 +112,13 @@ func NewHandler(config Config) (*Handler, error) {
|
||||||
dataStore: config.DataStore,
|
dataStore: config.DataStore,
|
||||||
basePath: base,
|
basePath: base,
|
||||||
isBasePathAbs: uri.IsAbs(),
|
isBasePathAbs: uri.IsAbs(),
|
||||||
routeHandler: mux,
|
|
||||||
locks: make(map[string]bool),
|
locks: make(map[string]bool),
|
||||||
CompleteUploads: make(chan FileInfo),
|
CompleteUploads: make(chan FileInfo),
|
||||||
logger: logger,
|
logger: logger,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
handler.routeHandler = handler.TusMiddleware(mux)
|
||||||
|
|
||||||
mux.Post("", http.HandlerFunc(handler.postFile))
|
mux.Post("", http.HandlerFunc(handler.postFile))
|
||||||
mux.Head(":id", http.HandlerFunc(handler.headFile))
|
mux.Head(":id", http.HandlerFunc(handler.headFile))
|
||||||
mux.Get(":id", http.HandlerFunc(handler.getFile))
|
mux.Get(":id", http.HandlerFunc(handler.getFile))
|
||||||
|
@ -129,6 +130,11 @@ func NewHandler(config Config) (*Handler, error) {
|
||||||
|
|
||||||
// Implement the http.Handler interface.
|
// Implement the http.Handler interface.
|
||||||
func (handler *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
func (handler *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||||
|
handler.routeHandler.ServeHTTP(w, r)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (handler *Handler) TusMiddleware(h http.Handler) http.Handler {
|
||||||
|
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||||
// Allow overriding the HTTP method. The reason for this is
|
// Allow overriding the HTTP method. The reason for this is
|
||||||
// that some libraries/environments to not support PATCH and
|
// that some libraries/environments to not support PATCH and
|
||||||
// DELETE requests, e.g. Flash in a browser and parts of Java
|
// DELETE requests, e.g. Flash in a browser and parts of Java
|
||||||
|
@ -181,7 +187,8 @@ func (handler *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Proceed with routing the request
|
// Proceed with routing the request
|
||||||
handler.routeHandler.ServeHTTP(w, r)
|
h.ServeHTTP(w, r)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create a new file upload using the datastore after validating the length
|
// Create a new file upload using the datastore after validating the length
|
||||||
|
|
Loading…
Reference in New Issue