Add Hash to user table
This commit is contained in:
parent
e873965e77
commit
34c965d8ee
@ -111,6 +111,8 @@ func (s *Show) GetDetails(db *sqlx.DB, log *logrus.Entry) error {
|
|||||||
// Unexpected error
|
// Unexpected error
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// so we got ErrNotFound so GetDetails from a detailer
|
||||||
err = s.Show.GetDetails(log)
|
err = s.Show.GetDetails(log)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -16,6 +16,7 @@ CREATE TABLE base (
|
|||||||
CREATE TABLE users (
|
CREATE TABLE users (
|
||||||
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||||
name text NOT NULL UNIQUE,
|
name text NOT NULL UNIQUE,
|
||||||
|
hash text NOT NULL,
|
||||||
LIKE base INCLUDING DEFAULTS
|
LIKE base INCLUDING DEFAULTS
|
||||||
);
|
);
|
||||||
CREATE TRIGGER update_users BEFORE UPDATE ON users FOR EACH ROW EXECUTE PROCEDURE update_modified_column();
|
CREATE TRIGGER update_users BEFORE UPDATE ON users FOR EACH ROW EXECUTE PROCEDURE update_modified_column();
|
||||||
|
@ -9,9 +9,9 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
addUserQuery = `INSERT INTO users (name) VALUES ($1) RETURNING id;`
|
addUserQuery = `INSERT INTO users (name, hash) VALUES ($1, $2) RETURNING id;`
|
||||||
getUserQuery = `SELECT * FROM users WHERE name=$1;`
|
getUserQuery = `SELECT * FROM users WHERE name=$1;`
|
||||||
updateUserQuery = `UPDATE users SET name=$1 RETURNING *;`
|
updateUserQuery = `UPDATE users SET name=:name, hash=:hash RETURNING *;`
|
||||||
deleteUseQuery = `DELETE FROM users WHERE id=:id;`
|
deleteUseQuery = `DELETE FROM users WHERE id=:id;`
|
||||||
|
|
||||||
addTokenQuery = `INSERT INTO tokens (value, users_id) VALUES ($1, $2) RETURNING id;`
|
addTokenQuery = `INSERT INTO tokens (value, users_id) VALUES ($1, $2) RETURNING id;`
|
||||||
@ -24,6 +24,7 @@ const (
|
|||||||
type User struct {
|
type User struct {
|
||||||
sqly.BaseTable
|
sqly.BaseTable
|
||||||
Name string
|
Name string
|
||||||
|
Hash string
|
||||||
}
|
}
|
||||||
|
|
||||||
// Token represents a token
|
// Token represents a token
|
||||||
@ -45,7 +46,7 @@ func Get(q sqlx.Queryer, name string) (*User, error) {
|
|||||||
// Add user to database or raises an error
|
// Add user to database or raises an error
|
||||||
func (u *User) Add(q sqlx.Queryer) error {
|
func (u *User) Add(q sqlx.Queryer) error {
|
||||||
var id string
|
var id string
|
||||||
err := q.QueryRowx(addUserQuery, u.Name).Scan(&id)
|
err := q.QueryRowx(addUserQuery, u.Name, u.Hash).Scan(&id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -55,10 +56,13 @@ func (u *User) Add(q sqlx.Queryer) error {
|
|||||||
|
|
||||||
// Update user on database or raise an error
|
// Update user on database or raise an error
|
||||||
func (u *User) Update(ex *sqlx.DB) error {
|
func (u *User) Update(ex *sqlx.DB) error {
|
||||||
err := ex.Get(u, updateUserQuery, u.Name)
|
rows, err := ex.NamedQuery(updateUserQuery, u)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
for rows.Next() {
|
||||||
|
rows.StructScan(u)
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ func TestUser(t *testing.T) {
|
|||||||
sqly.RunWithLastestMigration(db, pgdsn, t, func(db *sqlx.DB, t *testing.T) {
|
sqly.RunWithLastestMigration(db, pgdsn, t, func(db *sqlx.DB, t *testing.T) {
|
||||||
|
|
||||||
// Add a new user
|
// Add a new user
|
||||||
u := &User{Name: "plop"}
|
u := &User{Name: "plop", Hash: "plop"}
|
||||||
err := u.Add(db)
|
err := u.Add(db)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@ -98,7 +98,7 @@ func TestUser(t *testing.T) {
|
|||||||
func TestTokenAddDelete(t *testing.T) {
|
func TestTokenAddDelete(t *testing.T) {
|
||||||
sqly.RunWithLastestMigration(db, pgdsn, t, func(db *sqlx.DB, t *testing.T) {
|
sqly.RunWithLastestMigration(db, pgdsn, t, func(db *sqlx.DB, t *testing.T) {
|
||||||
// Add a new user
|
// Add a new user
|
||||||
u := &User{Name: "plop"}
|
u := &User{Name: "plop", Hash: "plop"}
|
||||||
err := u.Add(db)
|
err := u.Add(db)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@ -157,7 +157,7 @@ func TestTokenAddDelete(t *testing.T) {
|
|||||||
|
|
||||||
func TestTokenCheck(t *testing.T) {
|
func TestTokenCheck(t *testing.T) {
|
||||||
sqly.RunWithLastestMigration(db, pgdsn, t, func(db *sqlx.DB, t *testing.T) {
|
sqly.RunWithLastestMigration(db, pgdsn, t, func(db *sqlx.DB, t *testing.T) {
|
||||||
u := &User{Name: "plop"}
|
u := &User{Name: "plop", Hash: "plop"}
|
||||||
u.Add(db)
|
u.Add(db)
|
||||||
token, err := u.NewToken(db)
|
token, err := u.NewToken(db)
|
||||||
|
|
||||||
@ -183,7 +183,7 @@ func TestTokenCheck(t *testing.T) {
|
|||||||
|
|
||||||
func TestAutoUpdateCols(t *testing.T) {
|
func TestAutoUpdateCols(t *testing.T) {
|
||||||
sqly.RunWithLastestMigration(db, pgdsn, t, func(db *sqlx.DB, t *testing.T) {
|
sqly.RunWithLastestMigration(db, pgdsn, t, func(db *sqlx.DB, t *testing.T) {
|
||||||
u := &User{Name: "plop"}
|
u := &User{Name: "plop", Hash: "plop"}
|
||||||
u.Add(db)
|
u.Add(db)
|
||||||
u.Name = "toto"
|
u.Name = "toto"
|
||||||
u.Update(db)
|
u.Update(db)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user