Files
EchoChat/backend/go-service/app/auth/dao/oauth_account_dao.go
2026-05-26 22:41:53 +08:00

34 lines
853 B
Go

package dao
import (
"context"
"github.com/echochat/backend/app/auth/model"
"gorm.io/gorm"
)
type OAuthAccountDAO struct {
db *gorm.DB
}
func NewOAuthAccountDAO(db *gorm.DB) *OAuthAccountDAO {
return &OAuthAccountDAO{db: db}
}
func (d *OAuthAccountDAO) FindByProviderOpenID(ctx context.Context, provider, openID string) (*model.OAuthAccount, error) {
var account model.OAuthAccount
err := d.db.WithContext(ctx).Where("provider = ? AND open_id = ?", provider, openID).First(&account).Error
if err != nil {
return nil, err
}
return &account, nil
}
func (d *OAuthAccountDAO) Create(ctx context.Context, account *model.OAuthAccount) error {
return d.db.WithContext(ctx).Create(account).Error
}
func (d *OAuthAccountDAO) Update(ctx context.Context, account *model.OAuthAccount) error {
return d.db.WithContext(ctx).Save(account).Error
}