Files
backend/internal/repository/token_repository.go

68 lines
1.7 KiB
Go

package repository
import (
"carrotskin/internal/model"
)
func CreateToken(token *model.Token) error {
return getDB().Create(token).Error
}
func GetTokensByUserId(userId int64) ([]*model.Token, error) {
var tokens []*model.Token
err := getDB().Where("user_id = ?", userId).Find(&tokens).Error
return tokens, err
}
func BatchDeleteTokens(tokensToDelete []string) (int64, error) {
if len(tokensToDelete) == 0 {
return 0, nil
}
result := getDB().Where("access_token IN ?", tokensToDelete).Delete(&model.Token{})
return result.RowsAffected, result.Error
}
func FindTokenByID(accessToken string) (*model.Token, error) {
var token model.Token
err := getDB().Where("access_token = ?", accessToken).First(&token).Error
if err != nil {
return nil, err
}
return &token, nil
}
func GetUUIDByAccessToken(accessToken string) (string, error) {
var token model.Token
err := getDB().Where("access_token = ?", accessToken).First(&token).Error
if err != nil {
return "", err
}
return token.ProfileId, nil
}
func GetUserIDByAccessToken(accessToken string) (int64, error) {
var token model.Token
err := getDB().Where("access_token = ?", accessToken).First(&token).Error
if err != nil {
return 0, err
}
return token.UserID, nil
}
func GetTokenByAccessToken(accessToken string) (*model.Token, error) {
var token model.Token
err := getDB().Where("access_token = ?", accessToken).First(&token).Error
if err != nil {
return nil, err
}
return &token, nil
}
func DeleteTokenByAccessToken(accessToken string) error {
return getDB().Where("access_token = ?", accessToken).Delete(&model.Token{}).Error
}
func DeleteTokenByUserId(userId int64) error {
return getDB().Where("user_id = ?", userId).Delete(&model.Token{}).Error
}