First main
This commit is contained in:
parent
96e55d3eaa
commit
054f5103e6
47
main.go
Normal file
47
main.go
Normal file
@ -0,0 +1,47 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"os"
|
||||
|
||||
"gitlab.quimbo.fr/odwrtw/canape-sql/auth"
|
||||
"gitlab.quimbo.fr/odwrtw/canape-sql/movies"
|
||||
"gitlab.quimbo.fr/odwrtw/canape-sql/users"
|
||||
"gitlab.quimbo.fr/odwrtw/canape-sql/web"
|
||||
|
||||
"github.com/Sirupsen/logrus"
|
||||
"github.com/codegangsta/negroni"
|
||||
"github.com/gorilla/mux"
|
||||
"github.com/jmoiron/sqlx"
|
||||
_ "github.com/lib/pq"
|
||||
)
|
||||
|
||||
type UserBackend struct {
|
||||
Database *sqlx.DB
|
||||
}
|
||||
|
||||
func (b *UserBackend) Get(username string) (auth.User, error) {
|
||||
return users.Get(b.Database, username)
|
||||
}
|
||||
|
||||
func main() {
|
||||
log := logrus.NewEntry(logrus.New())
|
||||
|
||||
pgdsn := "postgres://test:test@127.0.0.1:5432/test?sslmode=disable"
|
||||
db, err := sqlx.Connect("postgres", pgdsn)
|
||||
if err != nil {
|
||||
log.Error(err)
|
||||
os.Exit(1)
|
||||
}
|
||||
uBackend := &UserBackend{db}
|
||||
authorizer := auth.New(uBackend, "peeper", "cookieName", "cookieKey", 10)
|
||||
|
||||
env := web.NewEnv(db, authorizer, log, "/templates")
|
||||
|
||||
router := mux.NewRouter()
|
||||
|
||||
router.Handle("/", env.Handler(movies.PolochonMovies))
|
||||
|
||||
n := negroni.Classic()
|
||||
n.UseHandler(router)
|
||||
n.Run(":3000")
|
||||
}
|
48
movies/handlers.go
Normal file
48
movies/handlers.go
Normal file
@ -0,0 +1,48 @@
|
||||
package movies
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"github.com/odwrtw/polochon/lib"
|
||||
"github.com/odwrtw/polochon/modules/tmdb"
|
||||
|
||||
"gitlab.quimbo.fr/odwrtw/canape-sql/web"
|
||||
"gitlab.quimbo.fr/odwrtw/papi"
|
||||
)
|
||||
|
||||
func PolochonMovies(env *web.Env, w http.ResponseWriter, r *http.Request) error {
|
||||
|
||||
//TODO use user params
|
||||
URL := "http://polochon.quimbo.fr"
|
||||
token := "ShaeGieheiPhue8ohM5t"
|
||||
|
||||
client, err := papi.New(URL, 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"})
|
||||
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
|
||||
}
|
@ -45,6 +45,14 @@ type Movie struct {
|
||||
polochon.Movie
|
||||
}
|
||||
|
||||
func New(imdbID string) *Movie {
|
||||
return &Movie{
|
||||
Movie: polochon.Movie{
|
||||
ImdbID: imdbID,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
// Get returns show details in database from id or imdbid or an error
|
||||
func (m *Movie) Get(db *sqlx.DB) error {
|
||||
var err error
|
||||
|
Loading…
x
Reference in New Issue
Block a user