Implement all services in type Repository

This commit is contained in:
Jan Bader 2016-12-20 20:46:25 +01:00
parent 04af4bce7e
commit 672376a55c
3 changed files with 17 additions and 14 deletions

View File

@ -22,7 +22,7 @@ func main() {
panic("Failed creating ID-Generator") panic("Failed creating ID-Generator")
} }
us := &postgres.UserService{DB: db, IDGenerator: id} us := &postgres.Repository{DB: db, IDGenerator: id}
tv := &jwt.TokenVerifier{} tv := &jwt.TokenVerifier{}
h := &http.Handler{ h := &http.Handler{

12
postgres/repository.go Normal file
View File

@ -0,0 +1,12 @@
package postgres
import (
"git.javil.eu/jacob1123/budgeteer"
"gopkg.in/pg.v5"
)
// Repository represents a PostgreSQL implementation of all ModelServices
type Repository struct {
DB *pg.DB
IDGenerator budgeteer.IDGenerator
}

View File

@ -1,18 +1,9 @@
package postgres package postgres
import ( import "git.javil.eu/jacob1123/budgeteer"
"git.javil.eu/jacob1123/budgeteer"
"gopkg.in/pg.v5"
)
// UserService represents a PostgreSQL implementation of myapp.UserService.
type UserService struct {
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 string) (*budgeteer.User, error) { func (s *Repository) User(id string) (*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 {
@ -22,7 +13,7 @@ func (s *UserService) User(id string) (*budgeteer.User, error) {
} }
// UserByUsername returns a user for a given username. // UserByUsername returns a user for a given username.
func (s *UserService) UserByUsername(username string) (*budgeteer.User, error) { func (s *Repository) UserByUsername(username string) (*budgeteer.User, error) {
u := &budgeteer.User{Email: username} u := &budgeteer.User{Email: username}
err := s.DB.Model(&u). err := s.DB.Model(&u).
Where("email = ?", username). Where("email = ?", username).
@ -35,7 +26,7 @@ func (s *UserService) UserByUsername(username string) (*budgeteer.User, error) {
} }
// CreateUser saves a user to the DB // CreateUser saves a user to the DB
func (s *UserService) CreateUser(user *budgeteer.User) error { func (s *Repository) CreateUser(user *budgeteer.User) error {
user.ID = s.IDGenerator.New() user.ID = s.IDGenerator.New()
return s.DB.Insert(user) return s.DB.Insert(user)
} }