github.com/oinume/lekcije@v0.0.0-20231017100347-5b4c5eb6ab24/backend/infrastructure/mysql/user_google.go (about) 1 package mysql 2 3 import ( 4 "context" 5 "database/sql" 6 7 "github.com/volatiletech/sqlboiler/v4/boil" 8 "github.com/volatiletech/sqlboiler/v4/queries/qm" 9 10 "github.com/oinume/lekcije/backend/domain/repository" 11 "github.com/oinume/lekcije/backend/model2" 12 ) 13 14 type userGoogleRepository struct { 15 db *sql.DB 16 } 17 18 func NewUserGoogleRepository(db *sql.DB) repository.UserGoogle { 19 return &userGoogleRepository{db: db} 20 } 21 22 func (r *userGoogleRepository) CreateWithExec(ctx context.Context, exec repository.Executor, userGoogle *model2.UserGoogle) error { 23 return userGoogle.Insert(ctx, exec, boil.Infer()) 24 } 25 26 func (r *userGoogleRepository) DeleteByPKWithExec(ctx context.Context, exec repository.Executor, googleID string) error { 27 ug := &model2.UserGoogle{GoogleID: googleID} 28 if _, err := ug.Delete(ctx, exec); err != nil { 29 return err 30 } 31 return nil 32 } 33 34 func (r *userGoogleRepository) FindByPKWithExec(ctx context.Context, exec repository.Executor, googleID string) (*model2.UserGoogle, error) { 35 return model2.UserGoogles(model2.UserGoogleWhere.GoogleID.EQ(googleID)).One(ctx, exec) 36 } 37 38 func (r *userGoogleRepository) FindByUserIDWithExec(ctx context.Context, exec repository.Executor, userID uint) (*model2.UserGoogle, error) { 39 return model2.UserGoogles(qm.Where("user_id = ?", userID)).One(ctx, exec) 40 }