61 lines
1.3 KiB
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 FromPolochon(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
|
|
}
|