90 lines
2.1 KiB
Go
90 lines
2.1 KiB
Go
|
|
package repository
|
||
|
|
|
||
|
|
import (
|
||
|
|
"carrotskin/internal/model"
|
||
|
|
"carrotskin/pkg/database"
|
||
|
|
)
|
||
|
|
|
||
|
|
func CreateToken(token *model.Token) error {
|
||
|
|
db := database.MustGetDB()
|
||
|
|
return db.Create(token).Error
|
||
|
|
}
|
||
|
|
|
||
|
|
func GetTokensByUserId(userId int64) ([]*model.Token, error) {
|
||
|
|
db := database.MustGetDB()
|
||
|
|
tokens := make([]*model.Token, 0)
|
||
|
|
err := db.Where("user_id = ?", userId).Find(&tokens).Error
|
||
|
|
if err != nil {
|
||
|
|
return nil, err
|
||
|
|
}
|
||
|
|
return tokens, nil
|
||
|
|
}
|
||
|
|
|
||
|
|
func BatchDeleteTokens(tokensToDelete []string) (int64, error) {
|
||
|
|
db := database.MustGetDB()
|
||
|
|
if len(tokensToDelete) == 0 {
|
||
|
|
return 0, nil // 无需要删除的令牌,直接返回
|
||
|
|
}
|
||
|
|
result := db.Where("access_token IN ?", tokensToDelete).Delete(&model.Token{})
|
||
|
|
|
||
|
|
return result.RowsAffected, result.Error
|
||
|
|
}
|
||
|
|
|
||
|
|
func FindTokenByID(accessToken string) (*model.Token, error) {
|
||
|
|
db := database.MustGetDB()
|
||
|
|
var tokens []*model.Token
|
||
|
|
err := db.Where("_id = ?", accessToken).Find(&tokens).Error
|
||
|
|
if err != nil {
|
||
|
|
return nil, err
|
||
|
|
}
|
||
|
|
return tokens[0], nil
|
||
|
|
}
|
||
|
|
|
||
|
|
func GetUUIDByAccessToken(accessToken string) (string, error) {
|
||
|
|
db := database.MustGetDB()
|
||
|
|
var token model.Token
|
||
|
|
err := db.Where("access_token = ?", accessToken).First(&token).Error
|
||
|
|
if err != nil {
|
||
|
|
return "", err
|
||
|
|
}
|
||
|
|
return token.ProfileId, nil
|
||
|
|
}
|
||
|
|
|
||
|
|
func GetUserIDByAccessToken(accessToken string) (int64, error) {
|
||
|
|
db := database.MustGetDB()
|
||
|
|
var token model.Token
|
||
|
|
err := db.Where("access_token = ?", accessToken).First(&token).Error
|
||
|
|
if err != nil {
|
||
|
|
return 0, err
|
||
|
|
}
|
||
|
|
return token.UserID, nil
|
||
|
|
}
|
||
|
|
|
||
|
|
func GetTokenByAccessToken(accessToken string) (*model.Token, error) {
|
||
|
|
db := database.MustGetDB()
|
||
|
|
var token model.Token
|
||
|
|
err := db.Where("access_token = ?", accessToken).First(&token).Error
|
||
|
|
if err != nil {
|
||
|
|
return nil, err
|
||
|
|
}
|
||
|
|
return &token, nil
|
||
|
|
}
|
||
|
|
|
||
|
|
func DeleteTokenByAccessToken(accessToken string) error {
|
||
|
|
db := database.MustGetDB()
|
||
|
|
err := db.Where("access_token = ?", accessToken).Delete(&model.Token{}).Error
|
||
|
|
if err != nil {
|
||
|
|
return err
|
||
|
|
}
|
||
|
|
return nil
|
||
|
|
}
|
||
|
|
|
||
|
|
func DeleteTokenByUserId(userId int64) error {
|
||
|
|
db := database.MustGetDB()
|
||
|
|
err := db.Where("user_id = ?", userId).Delete(&model.Token{}).Error
|
||
|
|
if err != nil {
|
||
|
|
return err
|
||
|
|
}
|
||
|
|
return nil
|
||
|
|
}
|