mirror of
https://github.com/stashapp/stash.git
synced 2025-12-18 12:54:38 +03:00
Restructure go project (#2356)
* Move main to cmd * Move api to internal * Move logger and manager to internal * Move shell hiding code to separate package * Decouple job from desktop and utils * Decouple session from config * Move static into internal * Decouple config from dlna * Move desktop to internal * Move dlna to internal * Decouple remaining packages from config * Move config into internal * Move jsonschema and paths to models * Make ffmpeg functions private * Move file utility methods into fsutil package * Move symwalk into fsutil * Move single-use util functions into client package * Move slice functions to separate packages * Add env var to suppress windowsgui arg * Move hash functions into separate package * Move identify to internal * Move autotag to internal * Touch UI when generating backend
This commit is contained in:
41
internal/api/routes_downloads.go
Normal file
41
internal/api/routes_downloads.go
Normal file
@@ -0,0 +1,41 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"context"
|
||||
"net/http"
|
||||
|
||||
"github.com/go-chi/chi"
|
||||
"github.com/stashapp/stash/internal/manager"
|
||||
)
|
||||
|
||||
type downloadsRoutes struct{}
|
||||
|
||||
func (rs downloadsRoutes) Routes() chi.Router {
|
||||
r := chi.NewRouter()
|
||||
|
||||
r.Route("/{downloadHash}", func(r chi.Router) {
|
||||
r.Use(downloadCtx)
|
||||
r.Get("/{filename}", rs.file)
|
||||
})
|
||||
|
||||
return r
|
||||
}
|
||||
|
||||
func (rs downloadsRoutes) file(w http.ResponseWriter, r *http.Request) {
|
||||
hash := r.Context().Value(downloadKey).(string)
|
||||
if hash == "" {
|
||||
http.Error(w, http.StatusText(404), 404)
|
||||
return
|
||||
}
|
||||
|
||||
manager.GetInstance().DownloadStore.Serve(hash, w, r)
|
||||
}
|
||||
|
||||
func downloadCtx(next http.Handler) http.Handler {
|
||||
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
downloadHash := chi.URLParam(r, "downloadHash")
|
||||
|
||||
ctx := context.WithValue(r.Context(), downloadKey, downloadHash)
|
||||
next.ServeHTTP(w, r.WithContext(ctx))
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user