diff --git a/data/psql.go b/data/psql.go index 0ebfc4d..791638b 100644 --- a/data/psql.go +++ b/data/psql.go @@ -33,6 +33,7 @@ func UsePSQL() { // log.Print(u) u1 := model.NewUser(3, 19, "paul", "newman", "PdsN@FDKML.COM") store.Update(16, u1) + log.Print(store.Get(1)) } func sqlExec(db *sql.DB, s string) { @@ -52,7 +53,7 @@ func createUserTable(db *sql.DB) { type Store interface { CreateTable() Add(i interface{}) - Get() + Get(id int) model.User Find(id int) Update(id int, i interface{}) Delete(id int) diff --git a/data/userQueries.go b/data/userQueries.go index c2273c6..a85aa29 100644 --- a/data/userQueries.go +++ b/data/userQueries.go @@ -11,6 +11,12 @@ const ( last_name TEXT, email TEXT UNIQUE NOT NULL) ` + + // QueryGet is the SQL command used to retrieve a user from the table + QueryGet = ` + SELECT * id FROM users WHERE id=$1; + ` + // QueryInsert is the SQL command used to insert a user in the table. // Returning the new ID. QueryInsert = ` diff --git a/data/userStore.go b/data/userStore.go index 62f58f8..88c34d1 100644 --- a/data/userStore.go +++ b/data/userStore.go @@ -17,6 +17,21 @@ func NewUserStore(db *sql.DB) UserStore { return UserStore{db: db} } +// Get retrieves the user identified by 'id' from database +func (us UserStore) Get(uid int) model.User { + var id, age int + var firstName,lastName,email string + row := us.db.QueryRow(QueryGet, uid) + switch err:=row.Scan(&id,&age,&firstName,&lastName,&email); err { + case sql.ErrNoRows: + log.Println("No entry returned") + case nil: + return model.NewUser(id, age,firstName,lastName,email) + default: + log.Fatal(err) + } +} + // Add inserts a user in the database. func (us UserStore) Add(u model.User) { id := 0