Add movie delete handler

This commit is contained in:
Grégoire Delattre 2017-01-20 22:55:55 +01:00
parent 8142b2ce31
commit fe81c968f4
2 changed files with 37 additions and 0 deletions

View File

@ -8,6 +8,7 @@ import (
"net/http"
"net/url"
"github.com/Sirupsen/logrus"
"github.com/gorilla/mux"
"github.com/odwrtw/papi"
polochon "github.com/odwrtw/polochon/lib"
@ -191,3 +192,38 @@ func SearchMovie(env *web.Env, w http.ResponseWriter, r *http.Request) error {
return env.RenderJSON(w, movieList)
}
// DeleteHandler deletes the movie from polochon
func DeleteHandler(env *web.Env, w http.ResponseWriter, r *http.Request) error {
vars := mux.Vars(r)
id := vars["id"]
log := env.Log.WithFields(logrus.Fields{
"imdb_id": id,
"function": "movies.DeleteHandler",
})
log.Debugf("deleting movie")
v := auth.GetCurrentUser(r, env.Log)
user, ok := v.(*users.User)
if !ok {
return fmt.Errorf("invalid user type")
}
var polochonConfig config.UserPolochon
err := user.GetConfig("polochon", &polochonConfig)
if err != nil {
return err
}
client, err := papi.New(polochonConfig.URL)
if err != nil {
return err
}
if polochonConfig.Token != "" {
client.SetToken(polochonConfig.Token)
}
return client.Delete(&papi.Movie{ImdbID: id})
}

View File

@ -78,6 +78,7 @@ func main() {
env.Handle("/movies/polochon", movies.FromPolochon).WithRole(users.UserRole).Methods("GET")
env.Handle("/movies/{id:tt[0-9]+}/get_details", movies.GetDetailsHandler).WithRole(users.UserRole).Methods("GET")
env.Handle("/movies/{id:tt[0-9]+}", movies.DeleteHandler).WithRole(users.AdminRole).Methods("DELETE")
env.Handle("/movies/explore", extmedias.Explore).WithRole(users.UserRole).Methods("GET")
env.Handle("/movies/refresh", extmedias.Refresh).WithRole(users.UserRole).Methods("POST")
env.Handle("/movies/search", movies.SearchMovie).WithRole(users.UserRole).Methods("POST")