Package fitbit: Merge the "Data" and "ShortData" sleep stages.
[kraftakt.git] / fitbit / sleep.go
index 76fc197..d7da138 100644 (file)
@@ -61,7 +61,7 @@ func parseSleep(ctx context.Context, data []byte, loc *time.Location) (*Sleep, e
 
        rawStages := jsonSleep.Levels.Data
        if len(jsonSleep.Levels.ShortData) != 0 {
-               rawStages = jsonSleep.Levels.ShortData
+               rawStages = append(rawStages, jsonSleep.Levels.ShortData...)
        }
 
        var ret Sleep
@@ -101,10 +101,10 @@ func parseSleep(ctx context.Context, data []byte, loc *time.Location) (*Sleep, e
        return &ret, nil
 }
 
-// Sleep returns the sleep log for date. Times are parsed in the user's timeozne, loc.
-func (c *Client) Sleep(ctx context.Context, date string, loc *time.Location) (*Sleep, error) {
+// Sleep returns the sleep log for date t. Times are parsed in the same timezone as t.
+func (c *Client) Sleep(ctx context.Context, t time.Time) (*Sleep, error) {
        url := fmt.Sprintf("https://api.fitbit.com/1.2/user/%s/sleep/date/%s.json",
-               c.fitbitUserID, date)
+               c.fitbitUserID, t.Format("2006-01-02"))
 
        res, err := c.client.Get(url)
        if err != nil {
@@ -118,5 +118,5 @@ func (c *Client) Sleep(ctx context.Context, date string, loc *time.Location) (*S
        }
        log.Debugf(ctx, "GET %s -> %s", url, data)
 
-       return parseSleep(ctx, data, loc)
+       return parseSleep(ctx, data, t.Location())
 }