canape/movies/handlers.go

61 lines
1.3 KiB
Go

package movies
import (
"fmt"
"net/http"
"github.com/odwrtw/polochon/lib"
"github.com/odwrtw/polochon/modules/mock"
"gitlab.quimbo.fr/odwrtw/canape-sql/auth"
"gitlab.quimbo.fr/odwrtw/canape-sql/config"
"gitlab.quimbo.fr/odwrtw/canape-sql/users"
"gitlab.quimbo.fr/odwrtw/canape-sql/web"
"gitlab.quimbo.fr/odwrtw/papi"
)
func PolochonMovies(env *web.Env, w http.ResponseWriter, r *http.Request) error {
v := auth.GetCurrentUser(r)
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, polochonConfig.Token)
if err != nil {
return err
}
pmovies, err := client.MoviesByID()
if err != nil {
return err
}
movies := []*Movie{}
//TODO use configurable detailer
// detailer, err := tmdb.New(&tmdb.Params{"57be344f84917b3f32c68a678f1482eb"})
detailer, _ := mock.NewDetailer(nil)
if err != nil {
return err
}
for _, pm := range pmovies {
m := New(pm.ImdbID)
m.Detailers = []polochon.Detailer{detailer}
err := m.GetDetails(env.Database, env.Log)
if err != nil {
env.Log.Error(err)
}
movies = append(movies, m)
}
env.Log.Info(movies)
return nil
}