From b4bb23056bd2ce4a6ac04c235a4075ec89374d47 Mon Sep 17 00:00:00 2001 From: Nicolas Duhamel Date: Wed, 27 Apr 2016 20:45:19 +0200 Subject: [PATCH] Use user config for polochon access --- config/polochon.go | 7 +++++++ movies/handlers.go | 19 +++++++++++++++---- users/users.go | 5 ++++- 3 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 config/polochon.go diff --git a/config/polochon.go b/config/polochon.go new file mode 100644 index 0000000..30f5644 --- /dev/null +++ b/config/polochon.go @@ -0,0 +1,7 @@ +package config + +// UserPolochon is polochon access parameter for a user +type UserPolochon struct { + URL string + Token string +} diff --git a/movies/handlers.go b/movies/handlers.go index 0b72884..9465833 100644 --- a/movies/handlers.go +++ b/movies/handlers.go @@ -1,22 +1,33 @@ 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 { - //TODO use user params - URL := "http://polochon.quimbo.fr" - token := "ShaeGieheiPhue8ohM5t" + 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(URL, token) + client, err := papi.New(polochonConfig.URL, polochonConfig.Token) if err != nil { return err } diff --git a/users/users.go b/users/users.go index 135ae34..6b590d7 100644 --- a/users/users.go +++ b/users/users.go @@ -46,7 +46,10 @@ func (u *User) GetConfig(key string, v interface{}) error { if err != nil { return err } - return json.Unmarshal(*configMap[key], v) + if raw, ok := configMap[key]; ok { + return json.Unmarshal(*raw, v) + } + return nil } // SetConfig marshal v into json for specified config key