Files
budget-backend/internal/expense/service.go

41 lines
845 B
Go

package expense
import (
"nos-comptes/internal/storage/dao"
"nos-comptes/internal/storage/model"
"nos-comptes/internal/utils"
)
type Service struct {
db *Database
}
func (s Service) GetAllExpensesOfAnAccount(accountId string) ([]*Expense, error) {
expenses, err := s.db.GetAllExpensesOfAnAccount(accountId)
utils.GetLogger().Info(err)
if e, ok := err.(*dao.Error); ok {
switch {
case e.Type == dao.ErrTypeNotFound:
return nil, &model.ErrNotFound
default:
return nil, &model.ErrInternalServer
}
} else if err != nil {
return nil, &model.ErrInternalServer
}
if expenses == nil {
return nil, &model.ErrNotFound
}
return expenses, nil
}
func (s Service) CreateExpense(expense *Expense) error {
return s.db.CreateExpense(expense)
}
func NewService(database *Database) *Service {
return &Service{db: database}
}