Packages app and gfit: Unify HTTP retries with retry.Transport.
[kraftakt.git] / app / user.go
index 563f449..63cd086 100644 (file)
@@ -10,6 +10,7 @@ import (
        "sync"
 
        "github.com/google/uuid"
+       "github.com/octo/retry"
        legacy_context "golang.org/x/net/context"
        "golang.org/x/oauth2"
        "google.golang.org/appengine/datastore"
@@ -107,12 +108,17 @@ func (u *User) OAuthClient(ctx context.Context, svc string, cfg *oauth2.Config)
        }
 
        src := cfg.TokenSource(ctx, &tok)
-       return oauth2.NewClient(ctx, &persistingTokenSource{
+       c := oauth2.NewClient(ctx, &persistingTokenSource{
                ctx: ctx,
                t:   &tok,
                src: src,
                key: key,
-       }), nil
+       })
+       c.Transport = retry.Transport{
+               RoundTripper: c.Transport,
+       }
+
+       return c, nil
 }
 
 func (u *User) String() string {