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")
}
us := &postgres.UserService{DB: db, IDGenerator: id}
us := &postgres.Repository{DB: db, IDGenerator: id}
tv := &jwt.TokenVerifier{}
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
import (
"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
}
import "git.javil.eu/jacob1123/budgeteer"
// 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}
err := s.DB.Select(&u)
if err != nil {
@ -22,7 +13,7 @@ func (s *UserService) User(id string) (*budgeteer.User, error) {
}
// 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}
err := s.DB.Model(&u).
Where("email = ?", username).
@ -35,7 +26,7 @@ func (s *UserService) UserByUsername(username string) (*budgeteer.User, error) {
}
// 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()
return s.DB.Insert(user)
}