projects
/
kraftakt.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
6edb368
)
Package app: Load the ID with the rest of the user data.
author
Florian Forster
<ff@octo.it>
Tue, 30 Jan 2018 19:31:33 +0000
(20:31 +0100)
committer
Florian Forster
<ff@octo.it>
Tue, 30 Jan 2018 19:31:33 +0000
(20:31 +0100)
app/user.go
patch
|
blob
|
history
fitbit/fitbit.go
patch
|
blob
|
history
diff --git
a/app/user.go
b/app/user.go
index
ffe65e9
..
9fe7e5d
100644
(file)
--- a/
app/user.go
+++ b/
app/user.go
@@
-14,8
+14,10
@@
import (
)
type User struct {
)
type User struct {
+ key *datastore.Key
+
+ ID string
Email string
Email string
- key *datastore.Key
}
type dbUser struct {
}
type dbUser struct {
@@
-23,14
+25,23
@@
type dbUser struct {
}
func NewUser(ctx context.Context, email string) (*User, error) {
}
func NewUser(ctx context.Context, email string) (*User, error) {
+ var id string
err := datastore.RunInTransaction(ctx, func(ctx legacy_context.Context) error {
key := datastore.NewKey(ctx, "User", email, 0, nil)
err := datastore.RunInTransaction(ctx, func(ctx legacy_context.Context) error {
key := datastore.NewKey(ctx, "User", email, 0, nil)
- if err := datastore.Get(ctx, key, &dbUser{}); err != datastore.ErrNoSuchEntity {
- return err // may be nil
+
+ var u dbUser
+ err := datastore.Get(ctx, key, &u)
+ if err != nil && err != datastore.ErrNoSuchEntity {
+ return err
+ }
+ if err == nil {
+ id = u.ID
+ return nil
}
}
- _, err := datastore.Put(ctx, key, &dbUser{
- ID: uuid.New().String(),
+ id = uuid.New().String()
+ _, err = datastore.Put(ctx, key, &dbUser{
+ ID: id,
})
return err
}, nil)
})
return err
}, nil)
@@
-39,8
+50,9
@@
func NewUser(ctx context.Context, email string) (*User, error) {
}
return &User{
}
return &User{
- Email: email,
key: datastore.NewKey(ctx, "User", email, 0, nil),
key: datastore.NewKey(ctx, "User", email, 0, nil),
+ ID: id,
+ Email: email,
}, nil
}
}, nil
}
@@
-55,20
+67,12
@@
func UserByID(ctx context.Context, id string) (*User, error) {
}
return &User{
}
return &User{
- Email: keys[0].StringID(),
key: keys[0],
key: keys[0],
+ ID: id,
+ Email: keys[0].StringID(),
}, nil
}
}, nil
}
-func (u *User) ID(ctx context.Context) (string, error) {
- var db dbUser
- if err := datastore.Get(ctx, u.key, &db); err != nil {
- return "", err
- }
-
- return db.ID, nil
-}
-
func (u *User) Token(ctx context.Context, svc string) (*oauth2.Token, error) {
key := datastore.NewKey(ctx, "Token", svc, 0, u.key)
func (u *User) Token(ctx context.Context, svc string) (*oauth2.Token, error) {
key := datastore.NewKey(ctx, "Token", svc, 0, u.key)
diff --git
a/fitbit/fitbit.go
b/fitbit/fitbit.go
index
36a6e87
..
d7a885d
100644
(file)
--- a/
fitbit/fitbit.go
+++ b/
fitbit/fitbit.go
@@
-177,13
+177,8
@@
func (c *Client) ActivitySummary(ctx context.Context, date string) (*ActivitySum
}
func (c *Client) Subscribe(ctx context.Context, collection string) error {
}
func (c *Client) Subscribe(ctx context.Context, collection string) error {
- subscriberID, err := c.appUser.ID(ctx)
- if err != nil {
- return err
- }
-
url := fmt.Sprintf("https://api.fitbit.com/1/user/%s/%s/apiSubscriptions/%s.json",
url := fmt.Sprintf("https://api.fitbit.com/1/user/%s/%s/apiSubscriptions/%s.json",
- c.fitbitUserID, collection,
subscriber
ID)
+ c.fitbitUserID, collection,
c.appUser.
ID)
res, err := c.client.Post(url, "", nil)
if err != nil {
return err
res, err := c.client.Post(url, "", nil)
if err != nil {
return err
@@
-200,13
+195,8
@@
func (c *Client) Subscribe(ctx context.Context, collection string) error {
}
func (c *Client) Unsubscribe(ctx context.Context, collection string) error {
}
func (c *Client) Unsubscribe(ctx context.Context, collection string) error {
- subscriberID, err := c.appUser.ID(ctx)
- if err != nil {
- return err
- }
-
url := fmt.Sprintf("https://api.fitbit.com/1/user/%s/%s/apiSubscriptions/%s.json",
url := fmt.Sprintf("https://api.fitbit.com/1/user/%s/%s/apiSubscriptions/%s.json",
- c.fitbitUserID, collection,
subscriber
ID)
+ c.fitbitUserID, collection,
c.appUser.
ID)
req, err := http.NewRequest(http.MethodDelete, url, nil)
if err != nil {
return err
req, err := http.NewRequest(http.MethodDelete, url, nil)
if err != nil {
return err