feat: update docs, fix repository, full working github callback, fix healthcheck in docker file, update makefile
This commit is contained in:
@@ -22,28 +22,56 @@ func NewAuthRepository(db *sql.DB) AuthRepository {
|
||||
|
||||
func (a *authRepository) Register(ctx context.Context, user storage.UserReg) (int, error) {
|
||||
var id int
|
||||
_, err := a.db.Exec(
|
||||
_, err := a.db.ExecContext(ctx,
|
||||
"INSERT INTO users(email, github_id, github_login, avatar_url) VALUES(?, ?, ?, ?)",
|
||||
user.Email, user.GithubID, user.GithubLogin, user.AvatarURL,
|
||||
)
|
||||
if err != nil {
|
||||
a.logger.Error("error request: " + err.Error())
|
||||
a.logger.Error("error insert: " + err.Error())
|
||||
return 0, err
|
||||
}
|
||||
row := a.db.QueryRow("SELECT id FROM users WHERE github_id = ?", user.GithubID)
|
||||
|
||||
row := a.db.QueryRowContext(ctx, "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)
|
||||
a.logger.Info("User registered: " + 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
|
||||
var id int
|
||||
err := a.db.QueryRowContext(ctx, "SELECT id FROM users WHERE github_id = ?", github_id).
|
||||
Scan(&id)
|
||||
if err != nil {
|
||||
if err == sql.ErrNoRows {
|
||||
return false, nil
|
||||
}
|
||||
return false, err
|
||||
}
|
||||
return false, nil
|
||||
return true, nil
|
||||
}
|
||||
|
||||
func (r *authRepository) GetUserByGithubID(
|
||||
ctx context.Context,
|
||||
githubID int,
|
||||
) (*storage.User, error) {
|
||||
var user storage.User
|
||||
query := `SELECT id, github_id, github_login, email, avatar_url FROM users WHERE github_id = ?`
|
||||
|
||||
err := r.db.QueryRowContext(ctx, query, githubID).Scan(
|
||||
&user.ID,
|
||||
&user.GithubID,
|
||||
&user.GithubLogin,
|
||||
&user.Email,
|
||||
&user.AvatarURL,
|
||||
)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &user, nil
|
||||
}
|
||||
|
||||
@@ -17,4 +17,5 @@ type PostRepository interface {
|
||||
type AuthRepository interface {
|
||||
Register(ctx context.Context, user storage.UserReg) (int, error)
|
||||
IsRegistered(ctx context.Context, github_id int) (bool, error)
|
||||
GetUserByGithubID(ctx context.Context, githubID int) (*storage.User, error)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user