Don't use context.Background().
[kraftakt.git] / kraftakt.go
index e0ad321..66668a6 100644 (file)
@@ -36,6 +36,11 @@ type ContextHandler func(context.Context, http.ResponseWriter, *http.Request) er
 func (hndl ContextHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
        ctx := appengine.NewContext(r)
 
+       if err := app.LoadConfig(ctx); err != nil {
+               http.Error(w, err.Error(), http.StatusInternalServerError)
+               return
+       }
+
        if err := hndl(ctx, w, r); err != nil {
                http.Error(w, err.Error(), http.StatusInternalServerError)
                return
@@ -47,6 +52,11 @@ type AuthenticatedHandler func(context.Context, http.ResponseWriter, *http.Reque
 func (hndl AuthenticatedHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
        ctx := appengine.NewContext(r)
 
+       if err := app.LoadConfig(ctx); err != nil {
+               http.Error(w, err.Error(), http.StatusInternalServerError)
+               return
+       }
+
        gaeUser := user.Current(ctx)
        if gaeUser == nil {
                url, err := user.LoginURL(ctx, r.URL.String())
@@ -171,7 +181,7 @@ func fitbitNotifyHandler(ctx context.Context, w http.ResponseWriter, r *http.Req
        // this is used when setting up a new subscriber in the UI. Once set
        // up, this code path should not be triggered.
        if verify := r.FormValue("verify"); verify != "" {
-               if verify == "@FITBIT_SUBSCRIBER_CODE@" {
+               if verify == app.Config.FitbitSubscriberCode {
                        w.WriteHeader(http.StatusNoContent)
                } else {
                        w.WriteHeader(http.StatusNotFound)
@@ -202,6 +212,10 @@ func fitbitNotifyHandler(ctx context.Context, w http.ResponseWriter, r *http.Req
 // handleNotifications parses fitbit notifications and requests the individual
 // activities from Fitbit. It is executed asynchronously via the delay package.
 func handleNotifications(ctx context.Context, payload []byte) error {
+       if err := app.LoadConfig(ctx); err != nil {
+               return err
+       }
+
        var subscriptions []fitbit.Subscription
        if err := json.Unmarshal(payload, &subscriptions); err != nil {
                return err