userStore complete

This commit is contained in:
Ruidy Nemausat 2020-03-16 15:45:45 +01:00
parent 5e84fd34fc
commit 9bef392094
4 changed files with 27 additions and 5 deletions

View file

@ -1,3 +1,4 @@
# TO DO
- [x] The mail field is case sensitive. Convert mail to lowercase before they are sent to InsertUser
- [] All errors are fatal. Provide proper error handling.

View file

@ -31,10 +31,11 @@ func UsePSQL() {
// u := model.TestUser()
// store.Add(u)
// log.Print(u)
u1 := model.NewUser(3, 19, "paul", "newman", "PdsN@FDKML.COM")
u1 := model.NewUser(3, 20, "paul", "newman", "PdsNz@FDKML.COM")
store.Update(16, u1)
log.Print(store.Get(1))
store.Delete(8)
// store.Delete(8)
log.Print(store.GetAll())
}
func sqlExec(db *sql.DB, s string) {

View file

@ -40,6 +40,7 @@ const (
// QueryDelete is the SQL command used to delete a user from the database.
QueryDelete = `
DELETE FROM users
WHERE id = $1;
WHERE id = $1
RETURNING *;
`
)

View file

@ -18,7 +18,26 @@ func NewUserStore(db *sql.DB) UserStore {
}
// GetAll retrieves all the users from the database.
func (us UserStore) GetAll() ([]model.User, error) {}
func (us UserStore) GetAll() ([]model.User, error) {
var id, age int
var firstName, lastName, email string
rows, err := us.db.Query(QueryGetAll)
if err != nil {
return nil, err
}
var users []model.User
for rows.Next() {
err := rows.Scan(&id, &age, &firstName, &lastName, &email)
if err != nil {
log.Fatal(err) // too severe
}
u := model.NewUser(id, age, firstName, lastName, email)
users = append(users, u)
}
return users, nil
}
// Get retrieves the user identified by 'id' from database
func (us UserStore) Get(uid int) (model.User, error) {
@ -74,6 +93,6 @@ func (us UserStore) Delete(id int) {
log.Fatal(err) // too severe
}
if count == 0 {
log.Fatal("Update failed") // too severe
log.Fatal("Delete failed") // too severe
}
}