Also subscribe to the "sleep" Fitbit collection.
[kraftakt.git] / gfitsync.go
index eb3c953..7f28bb0 100644 (file)
@@ -130,6 +130,10 @@ func fitbitGrantHandler(ctx context.Context, w http.ResponseWriter, r *http.Requ
                return fmt.Errorf("c.Subscribe() = %v", err)
        }
 
+       if err := c.Subscribe(ctx, "sleep"); err != nil {
+               return fmt.Errorf("c.Subscribe() = %v", err)
+       }
+
        redirectURL := r.URL
        redirectURL.Path = "/"
        redirectURL.RawQuery = ""
@@ -292,6 +296,8 @@ func handleNotification(ctx context.Context, s *fitbit.Subscription) error {
 
        wg.Add(1)
        go func() {
+               defer wg.Done()
+
                var distanceMeters float64
                for _, d := range summary.Summary.Distances {
                        if d.Activity != "total" {
@@ -302,8 +308,8 @@ func handleNotification(ctx context.Context, s *fitbit.Subscription) error {
                }
                if err := gfitClient.SetDistance(ctx, distanceMeters, tm); err != nil {
                        errs = append(errs, fmt.Errorf("gfitClient.SetDistance(%d) = %v", distanceMeters, err))
+                       return
                }
-               wg.Done()
        }()
 
        wg.Add(1)