From c3664ef3e00eec2056f9f428235b67eaa610122f Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Tue, 20 Dec 2016 09:46:52 +0100 Subject: [PATCH] Actually use pg --- postgres/db.go | 14 ++++++++++++++ postgres/userservice.go | 16 +++++++--------- 2 files changed, 21 insertions(+), 9 deletions(-) create mode 100644 postgres/db.go diff --git a/postgres/db.go b/postgres/db.go new file mode 100644 index 0000000..d6f2fc6 --- /dev/null +++ b/postgres/db.go @@ -0,0 +1,14 @@ +package postgres + +import "gopkg.in/pg.v5" + +// Connect to a database +func Connect(server string, user string, password string, database string) *pg.DB { + db := pg.Connect(&pg.Options{ + User: user, + Password: password, + Addr: server, + Database: database, + }) + return db +} diff --git a/postgres/userservice.go b/postgres/userservice.go index ce54e7a..7928f77 100644 --- a/postgres/userservice.go +++ b/postgres/userservice.go @@ -1,22 +1,20 @@ package postgres -import ( - "database/sql" +import "git.javil.eu/jacob1123/budgeteer" - "git.javil.eu/jacob1123/budgeteer" -) +import "gopkg.in/pg.v5" // UserService represents a PostgreSQL implementation of myapp.UserService. type UserService struct { - DB *sql.DB + DB *pg.DB } // User returns a user for a given id. func (s *UserService) User(id int) (*budgeteer.User, error) { - var u budgeteer.User - row := s.DB.QueryRow(`SELECT id, email, password, name FROM users WHERE id = $1`, id) - if err := row.Scan(&u.ID, &u.Email, &u.Password, &u.Name); err != nil { + u := &budgeteer.User{ID: id} + err := s.DB.Select(&u) + if err != nil { return nil, err } - return &u, nil + return u, nil }