diff --git a/src/internal/torrents/handlers.go b/src/internal/torrents/handlers.go index 20a51c8..6929293 100644 --- a/src/internal/torrents/handlers.go +++ b/src/internal/torrents/handlers.go @@ -42,3 +42,24 @@ func DownloadHandler(env *web.Env, w http.ResponseWriter, r *http.Request) error return env.RenderOK(w, "Torrent added") } + +// ListHandler downloads a movie via polochon +func ListHandler(env *web.Env, w http.ResponseWriter, r *http.Request) error { + v := auth.GetCurrentUser(r, env.Log) + user, ok := v.(*users.User) + if !ok { + return env.RenderError(w, errors.New("invalid user type")) + } + + client, err := user.NewPapiClient() + if err != nil { + return env.RenderError(w, err) + } + + torrents, err := client.GetTorrents() + if err != nil { + return env.RenderError(w, err) + } + + return env.RenderJSON(w, torrents) +} diff --git a/src/routes.go b/src/routes.go index 60866dd..02a7292 100644 --- a/src/routes.go +++ b/src/routes.go @@ -49,6 +49,7 @@ func setupRoutes(env *web.Env) { // Torrents routes env.Handle("/torrents", torrents.DownloadHandler).WithRole(users.UserRole).Methods("POST") + env.Handle("/torrents", torrents.ListHandler).WithRole(users.UserRole).Methods("GET") // Route to refresh all movies and shows env.Handle("/refresh", extmedias.RefreshHandler).WithRole(users.AdminRole).Methods("POST")