Implement NewBudget in BudgetService

This commit is contained in:
Jan Bader 2017-01-19 23:09:56 +01:00
parent ddf66dd8b0
commit ddbda095b5
2 changed files with 17 additions and 0 deletions

View File

@ -21,4 +21,5 @@ type UserBudget struct {
type BudgetService interface { type BudgetService interface {
Budget(id string) (*Budget, error) Budget(id string) (*Budget, error)
BudgetsForUser(id string) ([]*Budget, error) BudgetsForUser(id string) ([]*Budget, error)
NewBudget(name string, userID string) (*Budget, error)
} }

View File

@ -25,3 +25,19 @@ func (s *Repository) BudgetsForUser(id string) ([]*budgeteer.Budget, error) {
return user.Budgets, nil return user.Budgets, nil
} }
func (s *Repository) NewBudget(name string, userID string) (*budgeteer.Budget, error) {
b := &budgeteer.Budget{ID: s.IDGenerator.New(), Name: name}
err := s.DB.Insert(b)
if err != nil {
return nil, err
}
ub := &budgeteer.UserBudget{UserID: userID, BudgetID: b.ID}
err = s.DB.Insert(ub)
if err != nil {
return nil, err
}
return b, nil
}