aboutsummaryrefslogtreecommitdiff
path: root/internal/db/access_tokens.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/db/access_tokens.go')
-rw-r--r--internal/db/access_tokens.go21
1 files changed, 9 insertions, 12 deletions
diff --git a/internal/db/access_tokens.go b/internal/db/access_tokens.go
index bbb7b851..83b5747d 100644
--- a/internal/db/access_tokens.go
+++ b/internal/db/access_tokens.go
@@ -34,9 +34,8 @@ type AccessTokensStore interface {
GetBySHA1(ctx context.Context, sha1 string) (*AccessToken, error)
// List returns all access tokens belongs to given user.
List(ctx context.Context, userID int64) ([]*AccessToken, error)
- // Save persists all values of given access token. The Updated field is set to
- // current time automatically.
- Save(ctx context.Context, t *AccessToken) error
+ // Touch updates the updated time of the given access token to the current time.
+ Touch(ctx context.Context, id int64) error
}
var AccessTokens AccessTokensStore
@@ -65,12 +64,6 @@ func (t *AccessToken) BeforeCreate(tx *gorm.DB) error {
return nil
}
-// BeforeUpdate implements the GORM update hook.
-func (t *AccessToken) BeforeUpdate(tx *gorm.DB) error {
- t.UpdatedUnix = tx.NowFunc().Unix()
- return nil
-}
-
// AfterFind implements the GORM query hook.
func (t *AccessToken) AfterFind(tx *gorm.DB) error {
t.Created = time.Unix(t.CreatedUnix, 0).Local()
@@ -116,7 +109,7 @@ func (db *accessTokens) Create(ctx context.Context, userID int64, name string) (
Sha1: sha256[:40], // To pass the column unique constraint, keep the length of SHA1.
SHA256: sha256,
}
- if err = db.DB.WithContext(ctx).Create(accessToken).Error; err != nil {
+ if err = db.WithContext(ctx).Create(accessToken).Error; err != nil {
return nil, err
}
@@ -166,6 +159,10 @@ func (db *accessTokens) List(ctx context.Context, userID int64) ([]*AccessToken,
return tokens, db.WithContext(ctx).Where("uid = ?", userID).Order("id ASC").Find(&tokens).Error
}
-func (db *accessTokens) Save(ctx context.Context, t *AccessToken) error {
- return db.DB.WithContext(ctx).Save(t).Error
+func (db *accessTokens) Touch(ctx context.Context, id int64) error {
+ return db.WithContext(ctx).
+ Model(new(AccessToken)).
+ Where("id = ?", id).
+ UpdateColumn("updated_unix", db.NowFunc().Unix()).
+ Error
}