34 lines
853 B
Go
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
|
|
}
|