"strings"
"time"
- "github.com/octo/gfitsync/app"
- "github.com/octo/gfitsync/fitbit"
+ "github.com/octo/kraftakt/app"
+ "github.com/octo/kraftakt/fitbit"
"golang.org/x/oauth2"
oauth2google "golang.org/x/oauth2/google"
fitness "google.golang.org/api/fitness/v1"
)
var oauthConfig = &oauth2.Config{
- ClientID: "@GOOGLE_CLIENT_ID@",
- ClientSecret: "@GOOGLE_CLIENT_SECRET@",
+ ClientID: app.Config.GoogleClientID,
+ ClientSecret: app.Config.GoogleClientSecret,
Endpoint: oauth2google.Endpoint,
RedirectURL: "https://kraftakt.octo.it/google/grant",
Scopes: []string{
func Application(ctx context.Context) *fitness.Application {
return &fitness.Application{
- Name: "Fitbit to Google Fit sync",
+ Name: "Kraftakt",
Version: appengine.VersionID(ctx),
DetailsUrl: "", // optional
}
fields := []string{
dataSource.Type,
dataSource.DataType.Name,
- "@PROJECT_NUMBER@", // FIXME
+ app.Config.ProjectNumber,
}
if dev := dataSource.Device; dev != nil {
}
return DataStreamID(dataSource), nil
}
- log.Errorf(ctx, "c.Service.Users.DataSources.Create() = (%+v, %v)", res, err)
+ log.Errorf(ctx, "c.Service.Users.DataSources.Create(%q) = (%+v, %v)", dataSource, res, err)
return "", err
}
return res.DataStreamId, nil
}
func (c *Client) SetActivities(ctx context.Context, activities []Activity, startOfDay time.Time) error {
- dataStreamID := DataStreamID(&fitness.DataSource{
+ if len(activities) == 0 {
+ return nil
+ }
+
+ dataStreamID, err := c.DataSourceCreate(ctx, &fitness.DataSource{
+ Application: Application(ctx),
DataType: &fitness.DataType{
+ Field: []*fitness.DataTypeField{
+ &fitness.DataTypeField{
+ Name: "activity",
+ Format: "integer",
+ },
+ },
Name: dataTypeNameActivitySegment,
},
Type: "raw",
})
+ if err != nil {
+ return err
+ }
endOfDay := startOfDay.Add(24 * time.Hour).Add(-1 * time.Nanosecond)
if now := time.Now().In(startOfDay.Location()); now.Before(endOfDay) {
endTime = now
}
- log.Debugf(ctx, "adding cumulative data point: %v-%v %+v", startTime, endTime, diffValue)
+ log.Debugf(ctx, "add cumulative data %s until %v: %+v", dataSource.DataStreamId, endTime, diffValue)
return c.DataSetPatch(ctx, dataSource.DataStreamId, []*fitness.DataPoint{
&fitness.DataPoint{
}
if len(res.Point) == 0 {
+ log.Debugf(ctx, "read cumulative data %s until %v: []", dataSource.DataStreamId, endTime)
return &fitness.Value{}, startTime, nil
}