35 lines
775 B
Go
35 lines
775 B
Go
package storage
|
|
|
|
import (
|
|
"database/sql"
|
|
|
|
"synlotto-website/logging"
|
|
"synlotto-website/models"
|
|
)
|
|
|
|
func GetUserByID(db *sql.DB, id int) *models.User {
|
|
row := db.QueryRow("SELECT id, username, password_hash, is_admin FROM users WHERE id = ?", id)
|
|
|
|
var user models.User
|
|
err := row.Scan(&user.Id, &user.Username, &user.PasswordHash, &user.IsAdmin)
|
|
if err != nil {
|
|
if err != sql.ErrNoRows {
|
|
logging.Error("DB error:", err)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
return &user
|
|
}
|
|
|
|
func GetUserByUsername(db *sql.DB, username string) *models.User {
|
|
row := db.QueryRow(`SELECT id, username, password_hash, is_admin FROM users WHERE username = ?`, username)
|
|
|
|
var u models.User
|
|
err := row.Scan(&u.Id, &u.Username, &u.PasswordHash, &u.IsAdmin)
|
|
if err != nil {
|
|
return nil
|
|
}
|
|
return &u
|
|
}
|