Package app: Wrap oauth2.TokenSource to ensure datastore is always updated.
[kraftakt.git] / fitbit / fitbit.go
index 0f1a583..81d4ebc 100644 (file)
@@ -123,24 +123,24 @@ type Client struct {
 }
 
 func NewClient(ctx context.Context, fitbitUserID string, u *app.User) (*Client, error) {
-       tok, err := u.Token(ctx, "Fitbit")
-       if err != nil {
-               return nil, err
-       }
-
        if fitbitUserID == "" {
                fitbitUserID = "-"
        }
 
+       c, err := u.OAuthClient(ctx, "Fitbit", oauth2Config)
+       if err != nil {
+               return nil, err
+       }
+
        return &Client{
                fitbitUserID: fitbitUserID,
                appUser:      u,
-               client:       oauth2Config.Client(ctx, tok),
+               client:       c,
        }, nil
 }
 
 func (c *Client) ActivitySummary(t time.Time) (*ActivitySummary, error) {
-       url := fmt.Sprintf("https://api.fitbit.com/1/user/%s/activity/date/%s.json",
+       url := fmt.Sprintf("https://api.fitbit.com/1/user/%s/activities/date/%s.json",
                c.fitbitUserID, t.Format("2006-01-02"))
 
        res, err := c.client.Get(url)