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  }