Implement CreateUser & use ID

This commit is contained in:
Jan Bader 2016-12-20 11:45:34 +01:00
parent f66e544d43
commit cb6558a8ce

View File

@ -1,16 +1,18 @@
package postgres package postgres
import "git.javil.eu/jacob1123/budgeteer" import (
"git.javil.eu/jacob1123/budgeteer"
import "gopkg.in/pg.v5" "gopkg.in/pg.v5"
)
// UserService represents a PostgreSQL implementation of myapp.UserService. // UserService represents a PostgreSQL implementation of myapp.UserService.
type UserService struct { type UserService struct {
DB *pg.DB DB *pg.DB
IDGenerator budgeteer.IDGenerator
} }
// User returns a user for a given id. // User returns a user for a given id.
func (s *UserService) User(id int) (*budgeteer.User, error) { func (s *UserService) User(id budgeteer.ID) (*budgeteer.User, error) {
u := &budgeteer.User{ID: id} u := &budgeteer.User{ID: id}
err := s.DB.Select(&u) err := s.DB.Select(&u)
if err != nil { if err != nil {
@ -18,3 +20,9 @@ func (s *UserService) User(id int) (*budgeteer.User, error) {
} }
return u, nil return u, nil
} }
// CreateUser saves a user to the DB
func (s *UserService) CreateUser(user *budgeteer.User) error {
user.ID = s.IDGenerator.New()
return s.DB.Insert(user)
}