45 lines
1.0 KiB
Go
45 lines
1.0 KiB
Go
package institutions
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/SamuelTariku/FortuneBet-Backend/internal/domain"
|
|
"github.com/SamuelTariku/FortuneBet-Backend/internal/repository"
|
|
)
|
|
|
|
type Service struct {
|
|
repo repository.BankRepository
|
|
}
|
|
|
|
func New(repo repository.BankRepository) *Service {
|
|
return &Service{repo: repo}
|
|
}
|
|
|
|
func (s *Service) Create(ctx context.Context, bank *domain.Bank) error {
|
|
return s.repo.CreateBank(ctx, bank)
|
|
}
|
|
|
|
func (s *Service) Update(ctx context.Context, bank *domain.Bank) error {
|
|
return s.repo.UpdateBank(ctx, bank)
|
|
}
|
|
|
|
func (s *Service) GetByID(ctx context.Context, id int64) (*domain.Bank, error) {
|
|
return s.repo.GetBankByID(ctx, int(id))
|
|
}
|
|
|
|
func (s *Service) Delete(ctx context.Context, id int64) error {
|
|
return s.repo.DeleteBank(ctx, int(id))
|
|
}
|
|
|
|
func (s *Service) List(ctx context.Context) ([]*domain.Bank, error) {
|
|
banks, err := s.repo.GetAllBanks(ctx, nil, nil)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
result := make([]*domain.Bank, len(banks))
|
|
for i := range banks {
|
|
result[i] = &banks[i]
|
|
}
|
|
return result, nil
|
|
}
|