package postgres import ( "context" "database/sql" "git.javil.eu/jacob1123/budgeteer" ) // Budget returns a budget for a given id. func (s *Repository) Budget(id string) (*budgeteer.Budget, error) { b := &budgeteer.Budget{ID: id} err := s.DB.Select(&b) if err != nil { return nil, err } return b, nil } func (s *Repository) BudgetsForUser(id string) ([]Budget, error) { budgets, err := s.DB.GetBudgetsForUser(context.Background(), sql.NullString{id, true}) 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 }