From 1e43f2a59bba0462494066767fac140601791718 Mon Sep 17 00:00:00 2001 From: mihna123 Date: Sun, 23 Aug 2026 17:47:16 +0200 Subject: listing: implement a service layer stub along with tests --- internal/listing/service.go | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 internal/listing/service.go (limited to 'internal/listing/service.go') diff --git a/internal/listing/service.go b/internal/listing/service.go new file mode 100644 index 0000000..302628b --- /dev/null +++ b/internal/listing/service.go @@ -0,0 +1,36 @@ +package listing + +import "log/slog" + +type Repository interface { + GetAll() ([]Listing, error) + GetByCategory(category string) ([]Listing, error) +} + +type Service struct { + repository Repository +} + +func New(r Repository) *Service { + return &Service{repository: r} +} + +func (s *Service) GetAll() ([]Listing, error) { + listings, err := s.repository.GetAll() + if err != nil { + slog.Error("listing service", "error", err) + return nil, err + } + + return listings, nil +} + +func (s *Service) GetByCategory(c string) ([]Listing, error) { + listings, err := s.repository.GetByCategory(c) + if err != nil { + slog.Error("listing service", "error", err) + return nil, err + } + + return listings, nil +} -- cgit v1.3.1