JCS-pub/coordinator/internal/db/user_access_token.go

34 lines
1.1 KiB
Go

package db
import (
"time"
cortypes "gitlink.org.cn/cloudream/jcs-pub/coordinator/types"
)
type UserAccessTokenDB struct {
*DB
}
func (db *DB) UserAccessToken() *UserAccessTokenDB {
return &UserAccessTokenDB{DB: db}
}
func (db *UserAccessTokenDB) GetByID(ctx SQLContext, userID cortypes.UserID, tokenID cortypes.AccessTokenID) (cortypes.UserAccessToken, error) {
var ret cortypes.UserAccessToken
err := ctx.Table("UserAccessToken").Where("UserID = ? AND TokenID = ?", userID, tokenID).First(&ret).Error
return ret, err
}
func (*UserAccessTokenDB) Create(ctx SQLContext, token *cortypes.UserAccessToken) error {
return ctx.Table("UserAccessToken").Create(token).Error
}
func (db *UserAccessTokenDB) DeleteByID(ctx SQLContext, userID cortypes.UserID, tokenID cortypes.AccessTokenID) error {
return ctx.Table("UserAccessToken").Where("UserID = ? AND TokenID = ?", userID, tokenID).Delete(&cortypes.UserAccessToken{}).Error
}
func (*UserAccessTokenDB) DeleteExpired(ctx SQLContext, expireTime time.Time) error {
return ctx.Table("UserAccessToken").Where("ExpiresAt < ?", expireTime).Delete(&cortypes.UserAccessToken{}).Error
}