package repositories import ( "context" "database/sql" "gitea.d3m0k1d.ru/d3m0k1d/d3m0k1d.ru/backend/internal/logger" "gitea.d3m0k1d.ru/d3m0k1d/d3m0k1d.ru/backend/internal/storage" ) type authRepository struct { db *sql.DB logger *logger.Logger } func NewAuthRepository(db *sql.DB) AuthRepository { return &authRepository{ db: db, logger: logger.New(false), } } func (a *authRepository) Register(ctx context.Context, user storage.UserReg) (int, error) { var id int _, err := a.db.Exec( "INSERT INTO users(email, github_id, github_login, avatar_url) VALUES(?, ?, ?, ?)", ) if err != nil { a.logger.Error("error request: " + err.Error()) return 0, err } row := a.db.QueryRow("SELECT id FROM users WHERE github_id = ?", user.GithubID) err = row.Scan(&id) if err != nil { a.logger.Error("error scan: " + err.Error()) return 0, err } a.logger.Info("User registered:", "email", user.Email) return id, nil } func (a *authRepository) IsRegistered(ctx context.Context, github_id int) (bool, error) { row := a.db.QueryRow("SELECT id FROM users WHERE github_id = ?", github_id) if row != nil { return true, nil } return false, nil }