"fmt"
"io/ioutil"
"net/http"
- "net/url"
"time"
"github.com/octo/gfitsync/app"
}
func CheckSignature(ctx context.Context, payload []byte, rawSig string) bool {
- base64Sig, err := url.QueryUnescape(rawSig)
+ signatureGot, err := base64.StdEncoding.DecodeString(rawSig)
if err != nil {
- log.Errorf(ctx, "QueryUnescape(%q) = %v", rawSig, err)
- return false
- }
- signatureGot, err := base64.StdEncoding.DecodeString(base64Sig)
- if err != nil {
- log.Errorf(ctx, "base64.StdEncoding.DecodeString(%q) = %v", base64Sig, err)
+ log.Errorf(ctx, "base64.StdEncoding.DecodeString(%q) = %v", rawSig, err)
return false
}
}, nil
}
-func (c *Client) ActivitySummary(t time.Time) (*ActivitySummary, error) {
+func (c *Client) ActivitySummary(ctx context.Context, t time.Time) (*ActivitySummary, error) {
url := fmt.Sprintf("https://api.fitbit.com/1/user/%s/activities/date/%s.json",
c.fitbitUserID, t.Format("2006-01-02"))
}
defer res.Body.Close()
+ data, _ := ioutil.ReadAll(res.Body)
+ log.Debugf(ctx, "GET %s -> %s", url, data)
+
var summary ActivitySummary
- if err := json.NewDecoder(res.Body).Decode(&summary); err != nil {
+ if err := json.Unmarshal(data, &summary); err != nil {
return nil, err
}