Files
LargeHadronCollider/db/db_cold/authTokens.go
2025-10-31 12:08:10 -05:00

65 lines
1.3 KiB
Go

package db_cold
import (
"time"
"gorm.io/gorm"
)
type UserAuth struct {
gorm.Model
UserID string `gorm:"primarykey"`
UserName string
UserLogin string
UserEmail string
AccessToken string
RefreshToken string
TokenExpires time.Time
}
func (db *DBColdConn) initUserAuth() {
db.Gorm.AutoMigrate(&UserAuth{})
}
func (db *DBColdConn) GetAllUserAuth() ([]UserAuth, error) {
var userAuths []UserAuth
res := db.Gorm.Find(&userAuths)
if res.Error != nil {
return nil, res.Error
}
return userAuths, nil
}
// add or update user auth, based on ID
func (db *DBColdConn) UpdateUserAuth(userID, userName, userLogin, accessToken, refreshToken string, tokenExpires time.Time) error {
userAuth := UserAuth{
UserID: userID,
UserName: userName,
UserLogin: userLogin,
AccessToken: accessToken,
RefreshToken: refreshToken,
TokenExpires: tokenExpires,
}
rows, err := gorm.G[UserAuth](db.Gorm).Where("id = ?", userID).Find(db.Ctx)
if err != nil {
return err
}
if len(rows) > 0 {
// update
_, err := gorm.G[UserAuth](db.Gorm).Where("id = ?", userID).Updates(db.Ctx, userAuth)
if err != nil {
return err
}
} else {
// add
err := gorm.G[UserAuth](db.Gorm).Create(db.Ctx, &userAuth)
if err != nil {
return err
}
}
return nil
}