package postgres import ( "context" ) // Budget returns a budget for a given id. func (s *Repository) Budget(id string) (*Budget, error) { budget, err := s.DB.GetBudget(context.Background(), id) if err != nil { return nil, err } return &budget, nil } func (s *Repository) BudgetsForUser(id string) ([]Budget, error) { budgets, err := s.DB.GetBudgetsForUser(context.Background(), id) if err != nil { return nil, err } return budgets, nil } func (s *Repository) NewBudget(name string, userID string) (*Budget, error) { b := CreateBudgetParams{ID: s.IDGenerator.New(), Name: name} budget, err := s.DB.CreateBudget(context.Background(), b) if err != nil { return nil, err } ub := LinkBudgetToUserParams{UserID: userID, BudgetID: budget.ID} _, err = s.DB.LinkBudgetToUser(context.Background(), ub) if err != nil { return nil, err } return &budget, nil }