From c0d6ae1157650ded874843448a3a9e0247e91dfb Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Mon, 19 Dec 2016 18:43:24 +0100 Subject: [PATCH] Add postgres package --- postsgres/userservice.go | 22 ++++++++++++++++++++++ user.go | 14 ++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 postsgres/userservice.go create mode 100644 user.go diff --git a/postsgres/userservice.go b/postsgres/userservice.go new file mode 100644 index 0000000..2b13df1 --- /dev/null +++ b/postsgres/userservice.go @@ -0,0 +1,22 @@ +package postgres + +import ( + "database/sql" + + "git.javil.eu/jacob1123/budgeteer" +) + +// UserService represents a PostgreSQL implementation of myapp.UserService. +type UserService struct { + DB *sql.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 FROM users WHERE id = $1`, id) + if err := row.Scan(&u.ID, &u.Email, &u.Password); err != nil { + return nil, err + } + return &u, nil +} diff --git a/user.go b/user.go new file mode 100644 index 0000000..a40e046 --- /dev/null +++ b/user.go @@ -0,0 +1,14 @@ +package budgeteer + +type User struct { + ID int + Email string + Password string +} + +type UserService interface { + User(id int) (*User, error) + //Users() ([]*User, error) + //CreateUser(u *User) error + //DeleteUser(id int) error +} \ No newline at end of file