modularised webserver and auth systems
This commit is contained in:
@@ -8,12 +8,16 @@ import (
|
||||
)
|
||||
|
||||
type User struct {
|
||||
ID int // Integer ID (index primary key)
|
||||
id int // Integer ID (index primary key)
|
||||
Username string // Username (unique)
|
||||
Created_at int64 // Epoch timestamp when the user was added to the database
|
||||
Bio string // Short byline set by the user
|
||||
}
|
||||
|
||||
func (u User) ID() int {
|
||||
return u.id
|
||||
}
|
||||
|
||||
// Uses bcrypt to set the users Password_hash from the given password
|
||||
func (user *User) SetPassword(
|
||||
tx *sql.Tx,
|
||||
@@ -25,7 +29,7 @@ func (user *User) SetPassword(
|
||||
}
|
||||
newPassword := string(hashedPassword)
|
||||
query := `UPDATE users SET password_hash = ? WHERE id = ?`
|
||||
_, err = tx.Exec(query, newPassword, user.ID)
|
||||
_, err = tx.Exec(query, newPassword, user.id)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "tx.Exec")
|
||||
}
|
||||
@@ -35,8 +39,8 @@ func (user *User) SetPassword(
|
||||
// Uses bcrypt to check if the given password matches the users Password_hash
|
||||
func (user *User) CheckPassword(tx *sql.Tx, password string) error {
|
||||
query := `SELECT password_hash FROM users WHERE id = ? LIMIT 1`
|
||||
row := tx.QueryRow(query, user.ID)
|
||||
hashedPassword := ""
|
||||
row := tx.QueryRow(query, user.id)
|
||||
var hashedPassword string
|
||||
err := row.Scan(&hashedPassword)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "row.Scan")
|
||||
@@ -51,7 +55,7 @@ func (user *User) CheckPassword(tx *sql.Tx, password string) error {
|
||||
// Change the user's username
|
||||
func (user *User) ChangeUsername(tx *sql.Tx, newUsername string) error {
|
||||
query := `UPDATE users SET username = ? WHERE id = ?`
|
||||
_, err := tx.Exec(query, newUsername, user.ID)
|
||||
_, err := tx.Exec(query, newUsername, user.id)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "tx.Exec")
|
||||
}
|
||||
@@ -61,7 +65,7 @@ func (user *User) ChangeUsername(tx *sql.Tx, newUsername string) error {
|
||||
// Change the user's bio
|
||||
func (user *User) ChangeBio(tx *sql.Tx, newBio string) error {
|
||||
query := `UPDATE users SET bio = ? WHERE id = ?`
|
||||
_, err := tx.Exec(query, newBio, user.ID)
|
||||
_, err := tx.Exec(query, newBio, user.id)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "tx.Exec")
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ func scanUserRow(user *User, rows *sql.Rows) error {
|
||||
return errors.New("User not found")
|
||||
}
|
||||
err := rows.Scan(
|
||||
&user.ID,
|
||||
&user.id,
|
||||
&user.Username,
|
||||
&user.Created_at,
|
||||
&user.Bio,
|
||||
|
||||
Reference in New Issue
Block a user