You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.0 KiB
38 lines
1.0 KiB
package postgres
|
|
|
|
import (
|
|
"database/sql"
|
|
|
|
"github.com/dustinpianalto/quartermaster"
|
|
)
|
|
|
|
type userService struct {
|
|
db *sql.DB
|
|
}
|
|
|
|
func (s userService) User(username string) (*quartermaster.User, error) {
|
|
var user quartermaster.User
|
|
queryString := "SELECT id, username, password FROM users WHERE username = $1"
|
|
row := s.db.QueryRow(queryString, username)
|
|
err := row.Scan(&user.ID, &user.Username, &user.Password)
|
|
return &user, err
|
|
}
|
|
|
|
func (s userService) AddUser(u *quartermaster.User) (*quartermaster.User, error) {
|
|
queryString := "INSERT INTO users (username, password) VALUES ($1, $2) RETURNING id"
|
|
err := s.db.QueryRow(queryString, u.Username, u.Password).Scan(&u.ID)
|
|
return u, err
|
|
}
|
|
|
|
func (s userService) RemoveUser(u *quartermaster.User) error {
|
|
queryString := "DELETE FROM users WHERE id = $1"
|
|
_, err := s.db.Exec(queryString, u.ID)
|
|
return err
|
|
}
|
|
|
|
func (s userService) UpdateUser(u *quartermaster.User) error {
|
|
queryString := "UPDATE users SET password = $1 WHERE id = $2"
|
|
_, err := s.db.Exec(queryString, u.Password, u.ID)
|
|
return err
|
|
}
|